diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100755 index f807de9..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1,21 +0,0 @@ -module.exports = { - root: true, - env: { - browser: true, - node: true - }, - parserOptions: { - parser: 'babel-eslint' - }, - extends: [ - // https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention - // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules. - 'plugin:vue/essential' - ], - // required to lint *.vue files - plugins: [ - 'vue' - ], - // add your custom rules here - rules: {} -} diff --git a/.gitignore b/.gitignore index b0d062f..89ff0a6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,23 +1,12 @@ -.DS_Store -node_modules -/dist - -# local env files -.env.local -.env.*.local - -# Log files -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# Editor directories and files -.idea -.vscode -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw* - -.nuxt \ No newline at end of file +# Hugo default output directory +/public + +## OS Files +# Windows +Thumbs.db +ehthumbs.db +Desktop.ini +$RECYCLE.BIN/ + +# OSX +.DS_Store \ No newline at end of file diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index ad1ee79..0000000 --- a/.prettierrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bracketSpacing": true, - "printWidth": 100, - "semi": false, - "singleQuote": true, - "tabWidth": 2, - "trailingComma": "none", - "useTabs": false -} diff --git a/LICENSE b/LICENSE deleted file mode 100644 index c2a1c0f..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 Rohan Verma - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md deleted file mode 100755 index 2844d5f..0000000 --- a/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# rohanverma.net - -> Personal Website of Rohan Verma - -## Build Setup - -``` bash -# install dependencies -$ npm install # Or yarn install - -# serve with hot reload at localhost:3000 -$ npm run dev - -# build for production and launch server -$ npm run build -$ npm start - -# generate static project -$ npm run generate -``` - -For detailed explanation on how things work, checkout the [Nuxt.js docs](https://github.com/nuxt/nuxt.js). diff --git a/archetypes/default.md b/archetypes/default.md new file mode 100644 index 0000000..0a5bae4 --- /dev/null +++ b/archetypes/default.md @@ -0,0 +1,6 @@ ++++ +title = "{{ replace .TranslationBaseName "-" " " | title }}" +date = {{ .Date }} +description = "This text is displayed in search result listings." +draft = true ++++ diff --git a/archetypes/post.md b/archetypes/post.md new file mode 100644 index 0000000..938ba31 --- /dev/null +++ b/archetypes/post.md @@ -0,0 +1,86 @@ ++++ +title = "{{ replace .TranslationBaseName "-" " " | title }}" +date = {{ .Date }} +description = "This text was generated using the After Dark post archetype." +draft = true +toc = false +categories = ["hacking"] +tags = ["after", "dark"] +images = [ + "https://source.unsplash.com/collection/983219/1600x900" +] # overrides site-wide open graph image ++++ + +Before continuing please create a post archetype. Archetypes are located within markdown files in the `archetypes` directory of your site: + +``` +flying-toasters +├── archetypes +│   ├── default.md +│   └── post.md +├── content +``` + +If `post.md` does not exist yet, copy it from the After Dark default: + +```sh +$ cd flying-toasters +$ cp themes/after-dark/archetypes/post.md archetypes/ +``` + +Make some changes to `post.md` then use `hugo new` to draft a new post: + +```sh +$ vi archetypes/post.md # or vim, emacs, nano ... +$ hugo new post/totally-twisted.md +``` + +If `hugo server` is running with the `--navigateToChanged` flag your new post will appear automatically in JavaScript-enabled browsers. If you see an empty page you probably need to restart `hugo server` with the `--buildDrafts` flag. + +Use archetypes to maintain consistency when creating content for [Custom Layouts](http://localhost:1414/feature/custom-layouts). Like custom layouts {{< external href="https://gohugo.io/content-management/archetypes/" text="Hugo Archetypes" />}} may contain templating logic. + + + +--- + +{{< hackcss-alert type="info" >}} +Tip: This message appears below a {{< external href="https://gohugo.io/content-management/summaries/#manual-summary-splitting" text="Manual Summary Split" />}}. +{{< /hackcss-alert >}} + +The above tip uses a shortcode called [Alert](http://localhost:1414/shortcode/alert/). In addition to a number of [Shortcodes](http://localhost:1414/shortcode/) After Dark provides a number of other [Features](http://localhost:1414/feature/). + +The [Module System](http://localhost:1414/feature/module-system/), for example, provides a module to display image animations with alpha transparency and something not possible using a GIF: + +![BPG animation example](/bpg/cinemagraph-6.bpg) + +If you do not see the above animation, you may install the [Fractal Forest](http://localhost:1414/module/fractal-forest/) module yourself or reinstall After Dark using the [Quick Install](http://localhost:1414/feature/quick-install/) for instant setup. + +Review the [Online Help](http://localhost:1414/) to learn about other useful features such as the [Section Menus](http://localhost:1414/feature/section-menu) navigational aid, responsive [Post Images](http://localhost:1414/feature/post-images/"), offline [Fuzzy Search](http://localhost:1414/feature/fuzzy-search/) and more. + +If online help isn't running, go ahead and start it using the corresponding command from the following cheat sheet within your site directory: + +```sh +# After Dark scripts +./themes/after-dark/bin/upgrade # check for updates and upgrade +./themes/after-dark/bin/help # start online help docs +./themes/after-dark/bin/install # run the quick installer + +# Hugo commands +hugo # build site with default settings +hugo --minify # build with minified sources (hugo 0.47 and above) +hugo --config config.prod.toml # build with custom config +hugo --templateMetrics # generate template metrics +hugo new about.md # generate page content +hugo new post/coming-soon.md # generate new post content +hugo serve # serve locally with default settings +hugo serve --buildDrafts --navigateToChanged # serve with drafts for editing +hugo serve --buildExpired # serve locally showing expired content +hugo serve --disableLiveReload # serve locally w/live reload disabled +hugo list drafts # list draft content +hugo list expired # list expired content +hugo list future # list future content +hugo [serve] --debug # build or serve hugo with debug info +hugo [command] --help +``` + +Thank you for choosing After Dark. diff --git a/archetypes/search.md b/archetypes/search.md new file mode 100644 index 0000000..17736d6 --- /dev/null +++ b/archetypes/search.md @@ -0,0 +1,15 @@ ++++ +title = "Search" # title of the page +layout = "search" # sets the layout to use +noindex = true # tell robots not to index +[form] + helpblock = "Press s to focus input anytime." +[form.input] + placeholder = "Enter search query…" + disabled = false +[security.csp.directives] + scriptSrc = [ + "'sha512-Bxby9zhln4Zc2thGA1E9CdT4qcCY52SxO/SBxAH6qQK6LK6/1gGq1xJ3Uz0SXTsPSL6quze7bYQUHr94xJS7jQ=='", + "'unsafe-eval'" + ] ++++ diff --git a/assets/README.md b/assets/README.md deleted file mode 100755 index c67cf2e..0000000 --- a/assets/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# ASSETS - -This directory contains your un-compiled assets such as LESS, SASS, or JavaScript. - -More information about the usage of this directory in the documentation: -https://nuxtjs.org/guide/assets#webpacked - -**This directory is not required, you can delete it if you don't want to use it.** diff --git a/assets/css/_tailwind.css b/assets/css/_tailwind.css deleted file mode 100644 index b71bedf..0000000 --- a/assets/css/_tailwind.css +++ /dev/null @@ -1,62 +0,0 @@ -/** - * This injects Tailwind's base styles, which is a combination of - * Normalize.css and some additional base styles. - * - * You can see the styles here: - * https://github.com/tailwindcss/tailwindcss/blob/master/css/preflight.css - * - * If using `postcss-import`, use this import instead: - * - * @import "tailwindcss/preflight"; - */ -@tailwind preflight; - -/** - * This injects any component classes registered by plugins. - * - * If using `postcss-import`, use this import instead: - * - * @import "tailwindcss/components"; - */ -@tailwind components; - -/** - * Here you would add any of your custom component classes; stuff that you'd - * want loaded *before* the utilities so that the utilities could still - * override them. - * - * Example: - * - * .btn { ... } - * .form-input { ... } - * - * Or if using a preprocessor or `postcss-import`: - * - * @import "components/buttons"; - * @import "components/forms"; - */ - -/** - * This injects all of Tailwind's utility classes, generated based on your - * config file. - * - * If using `postcss-import`, use this import instead: - * - * @import "tailwindcss/utilities"; - */ -@tailwind utilities; - -/** - * Here you would add any custom utilities you need that don't come out of the - * box with Tailwind. - * - * Example : - * - * .bg-pattern-graph-paper { ... } - * .skew-45 { ... } - * - * Or if using a preprocessor or `postcss-import`: - * - * @import "utilities/background-patterns"; - * @import "utilities/skew-transforms"; - */ diff --git a/assets/css/custom.css b/assets/css/custom.css new file mode 100644 index 0000000..1a50d43 --- /dev/null +++ b/assets/css/custom.css @@ -0,0 +1,50 @@ +body { + background: #fffcf5; +} + +a[rel*="external"]::after { + content: " " url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20class='i-external'%20viewBox='0%200%2032%2032'%20width='14'%20height='14'%20fill='none'%20stroke='%23ff9800'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='9.38%'%3E%3Cpath%20d='M14%209%20L3%209%203%2029%2023%2029%2023%2018%20M18%204%20L28%204%2028%2014%20M28%204%20L14%2018'/%3E%3C/svg%3E"); +} +nav a.active { + background-color: inherit; + color: #000; +} +a { + color: #422eff; + border-bottom: 1px solid #00ff9c; +} +a:hover { + color: #000; + background-color: #00ff9c; +} +.muted, .help-block { + opacity: 0.70; +} +.hack .muted, +.hack .help-block { + color: #0e0e0e; +} + +.hack > header { + display: grid; + grid-template-columns: 1fr minmax(min-content, auto); + column-gap: 20px; + grid-template-areas: "nav nav"; +} + +.leader{ + display: flex; + align-items: center; + justify-content: center; +} + +.myimage{ + margin-right: 10px; + box-shadow: 0 4px 8px 0 rgba(0,0,0,.12),0 2px 4px 0 rgba(0,0,0,.08); + border-width: 1px; + border-radius: 9999px; + border-color: #22292f; + border-style: solid; + height: 4rem; + width: 4rem; +} \ No newline at end of file diff --git a/assets/css/main.css b/assets/css/main.css deleted file mode 100644 index 8d197fe..0000000 --- a/assets/css/main.css +++ /dev/null @@ -1,33 +0,0 @@ -/** ------------------------------------------------------------ - ## TAILWIND CSS - --------------------------------------------------------- */ - -@import '_tailwind'; - -/** ------------------------------------------------------------ - ## CUSTOM CLASSES - --------------------------------------------------------- */ -html { - height: 100%; -} - -body { - background-color: #fafafa; - - min-height: 100%; -} - -.btn { - @apply text-xs font-semibold rounded-full px-4 py-1 leading-normal bg-white border border-black text-black; -} -.btn-black { - @apply bg-white text-black; -} -.btn-black:hover { - @apply bg-black text-white; -} - -/* Temporary fix for https://github.com/vaso2/nuxt-fontawesome/issues/9 */ -.fix-fa-inlined span{ - width: 1em !important; -} \ No newline at end of file diff --git a/components/ContactCard.vue b/components/ContactCard.vue deleted file mode 100644 index d8f175f..0000000 --- a/components/ContactCard.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - diff --git a/components/HomeMessage.vue b/components/HomeMessage.vue deleted file mode 100644 index 66a2bed..0000000 --- a/components/HomeMessage.vue +++ /dev/null @@ -1,23 +0,0 @@ - diff --git a/components/MainPage.vue b/components/MainPage.vue deleted file mode 100644 index a066061..0000000 --- a/components/MainPage.vue +++ /dev/null @@ -1,40 +0,0 @@ - - - - diff --git a/components/ProfileList.vue b/components/ProfileList.vue deleted file mode 100644 index 390e050..0000000 --- a/components/ProfileList.vue +++ /dev/null @@ -1,99 +0,0 @@ - - - diff --git a/components/ProjectList.vue b/components/ProjectList.vue deleted file mode 100644 index 112cb5a..0000000 --- a/components/ProjectList.vue +++ /dev/null @@ -1,78 +0,0 @@ - - - diff --git a/components/README.md b/components/README.md deleted file mode 100755 index d7768dd..0000000 --- a/components/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# COMPONENTS - -The components directory contains your Vue.js Components. -Nuxt.js doesn't supercharge these components. - -**This directory is not required, you can delete it if you don't want to use it.** diff --git a/components/TwitterEmbed.vue b/components/TwitterEmbed.vue deleted file mode 100644 index 7e2b1cc..0000000 --- a/components/TwitterEmbed.vue +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/config.toml b/config.toml new file mode 100644 index 0000000..2b71381 --- /dev/null +++ b/config.toml @@ -0,0 +1,77 @@ +baseurl = "/" # Controls base URL sitewide +languageCode = "en-US" # Controls site language +title = "rohanverma.net" # Homepage title and page title suffix +paginate = 11 # Number of posts to show before paginating +disqusShortname = "rhnvrm" +googleAnalytics = "UA-90695618-1" + +# Controls default theme and theme components +theme = [ + "fractal-forest", + "after-dark" +] + +disableLiveReload = false # Optional, set true to disable live reload +enableRobotsTXT = true # Suggested, enable robots.txt file + +pygmentsCodefences = true # Suggested, highlight fenced code blocks +pygmentsUseClasses = true # Required for custom syntax highlighting + +sectionPagesMenu = "main" # Enable menu system for lazy bloggers +footnoteReturnLinkContents = "↩" # Provides a nicer footnote return link + +[params] + description = "Todo" # Suggested, controls default description meta + author = "Rohan Verma" # Optional, controls author name display on posts + hide_author = false # Optional, set true to hide author name on posts + has_cookies = false # Optional, set true to disable cookie disclaimer + disable_csp = false # Optional, set true to disable content security policy + images = [ + "https://source.unsplash.com/collection/983219/2000x1322" + ] # Suggested, controls default Open Graph images + +[params.layout.menu.main] + hidden = false # Optional, set false or remove to show section menu + exclude = ["search", "blog_list"] # exclude homepage and blog postings + +[[menu.main]] + name = "Home" + identifier = "home" + url = "/" + weight = 1 + +[[menu.main]] + name = "Blog" + identifier = "blog" + url = "/blog" + weight = 0 + + +[[menu.utility]] + name = "@rhnvrm" + weight = 1 + identifier = "tweet" + url = "https://twitter.com/rhnvrm" + +[[menu.utility]] + name = "Email" + weight = 1 + identifier = "email" + url = "mailto:hello@rohanverma.net" + +[[menu.utility]] + name = "Search" + identifier = "search" + url = "/search/" + post = "" + +[params.modules.fractal_forest] + enabled = true # Optional, set false to disable module + decoders = ["bpgdec8a"] # Optional, 8-bit javascript decoder with animation + +[params.hackcss] + mode = "hack" + palette = "light" + +[outputs] + home = ["HTML", "RSS", "JSON"] diff --git a/content/404.html b/content/404.html new file mode 100644 index 0000000..68ab7bd --- /dev/null +++ b/content/404.html @@ -0,0 +1,94 @@ + + {{ .Hugo.Generator }} + + + + 404 Error | {{ .Site.Title }} + {{ partial "head/favicon.html" . }} + {{ partial "meta/theme-color.html" . }} + + + + +
+ +

404

+
+
+ + diff --git a/content/blog/2016-01-27-making-presenations-using-markdown.md b/content/blog/2016-01-27-making-presenations-using-markdown.md new file mode 100644 index 0000000..470da2d --- /dev/null +++ b/content/blog/2016-01-27-making-presenations-using-markdown.md @@ -0,0 +1,39 @@ +--- +title: Making Presenations using Markdown +author: rhnvrm +type: post +date: 2016-01-27T00:00:00+00:00 +url: blog/2016/01/27/making-presenations-using-markdown/ +categories: + - projects + - uncategorized + +--- +It’s often a pain to make presenations. How many times have you just wanted to make a simple presentation but have had to deal with bulky software like MS Office? + +Well markdown alternatives exist for presenations also, you can focus on your content and make your presentations simply in markdown. + +If you don’t know what markdown is you can see this wonderful [cheatsheet][1] and + +get acquainted with it in seconds. + +Although there are many solutions, I found [RemarkJS][2] to be a good product. This is their getting started tutorial: + +> It takes only a few, simple steps to get up and running with remark: + +> 1. Create a HTML file to contain your slideshow (see below) + +> 2. Open the HTML file in a decent browser + +> 3. Edit the Markdown and/or CSS styles as needed, save and refresh! + +They also have a wonderful [website][3] which is acutally a presentation which you can use as an introduction. + +Many tools have also been built around it like [Remarkise][4] which can be used to render your Markdown-based slideshow on the fly. + +If you know of any other cooler alternatives, please drop a comment! + + [1]: https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet + [2]: https://github.com/gnab/remark + [3]: http://remarkjs.com/ + [4]: https://gnab.github.io/remark/remarkise \ No newline at end of file diff --git a/content/blog/2016-01-28-point-about-floating-points.md b/content/blog/2016-01-28-point-about-floating-points.md new file mode 100644 index 0000000..81ae8c1 --- /dev/null +++ b/content/blog/2016-01-28-point-about-floating-points.md @@ -0,0 +1,18 @@ +--- +title: Point about Floating (Points) +author: rhnvrm +type: post +date: 2016-01-28T00:00:00+00:00 +url: blog/2016/01/28/point-about-floating-points/ +categories: + - uncategorized + +--- +It is not always true what you might be told about floating point numbers, always better to look for things in the manual or on the [internet][1] + +![xkcd][2] + +Black Hat was lying to the ACM team. e^π – π, which is around 19.999099979 is very close to 20. Many people forget that floating point numbers are approximations, otherwise infinite space would be needed to store such numbers. He made them believe that it is “close enough to 20 that the computer should be unable to tell the difference, and that any noticeable deviation from 20 results from errors in the code”. Well, what more do you expect from black-hat? + + [1]: http://floating-point-gui.de/basic/ + [2]: https://imgs.xkcd.com/comics/e_to_the_pi_minus_pi.png \ No newline at end of file diff --git a/content/blog/2016-01-29-twitter-bots-using-tweepy.md b/content/blog/2016-01-29-twitter-bots-using-tweepy.md new file mode 100644 index 0000000..16a385d --- /dev/null +++ b/content/blog/2016-01-29-twitter-bots-using-tweepy.md @@ -0,0 +1,35 @@ +--- +title: Twitter bots using Tweepy +author: rhnvrm +type: post +date: 2016-01-29T00:00:00+00:00 +url: blog/2016/01/29/twitter-bots-using-tweepy/ +categories: + - projects + +--- +Unable to think what to tweet about? Have you ever faced a similar situation? + +Well, it’s very easy to create your own bots using python’s Tweepy module. You can use these skeletons I recently made for a workshop on the same topic. All you need to make your own bot is add some logic to these skeletons. + +* * * + +This is a basic static script that you can use by running once yourself or setup a cronjob to run automaticall in intervals. Currently, it fetches JSON data from an API and parses it into a python dict which you can then manipulate with your py-fu. + + + +* * * + +This script uses twitter’s streaming API which you can use to read content in real time and act upon it again, in real time! + + + +* * * + +Note you will also need this file in the same directory, it holds your keys. You should add this file to .gitignore before commiting your keys in your own repo. + + + +If you create your own bot using this, we would love for you to also add it to the [audience][2] folder in the repo by sending a pull request. + + [2]: https://github.com/ACM-SNU/api-bot-python/tree/master/audience \ No newline at end of file diff --git a/content/blog/2016-03-22-blip.md b/content/blog/2016-03-22-blip.md new file mode 100644 index 0000000..d09e400 --- /dev/null +++ b/content/blog/2016-03-22-blip.md @@ -0,0 +1,39 @@ +--- +title: 'BLIP – Asset Tracking & Location Based Contextual Services Using Bluetooth Based Indoor Positioning' +author: rhnvrm +type: post +date: 2016-03-22T23:43:41+00:00 +url: blog/2016/03/22/blip/ +categories: + - projects +tags: + - hackathon + - iot + - python + +--- +**BLIP** is a naive solution for effective tracking of assets in indoor spaces, where satellite (GPS) based positioning systems are unreliable, and provide location based contextual services. This project was made at IndiaHacks: Internet Of Things Hackathon at SAP Labs, Gurgaon. It was an overnight hackathon and [Paul][1] and I were awake till the last moments and only slept after creating a small demo video. + + + +We were inspired by the The Time Machine (2002) movie’s scene where the protagonist enters a museum in the future. + + + +During the hackathon we were able to make an app that relays RSSI values to our real time Database (rethink-db) that works on a pub-sub model, queries the real time database for its calculated position and receives contextual information relating to its predicted position inside the building where beacons have been set up. + + + +Since, the final submission deadline was extended, we were able to reach back our campus at night and shoot a demo video at our university’s library. + + + +Finally, we were selected in the top 20 for the offline finals of IndiaHacks and went to Taj Vivanta, Bangalore. It was a nice experience where we got to improve our idea with the help of mentors that were available there. We tweaked the algorithm and the variables a bit for the demo room we made at the venue. We were surprised to be among the few student teams at the finale. + + + +We gave our best and demo’d the project and were finally awarded the 7th position and received two RaspberryPi 3B models as the prize. + + + + [1]: https://twitter.com/commandpaul \ No newline at end of file diff --git a/content/blog/2016-04-15-foodify-app-hacknsit-2016.md b/content/blog/2016-04-15-foodify-app-hacknsit-2016.md new file mode 100644 index 0000000..0992bde --- /dev/null +++ b/content/blog/2016-04-15-foodify-app-hacknsit-2016.md @@ -0,0 +1,42 @@ +--- +title: Foodify App – HackNSIT 2016 +author: rhnvrm +type: post +date: 2016-04-15T00:22:24+00:00 +url: blog/2016/04/15/foodify-app-hacknsit-2016/ +categories: + - projects +tags: + - android + - api + - hackathon + - python + +--- +[HackNSIT][1] is a 24 hour hackathon that took place at Netaji Subhash Institute of Technology, and had around 150 participants from all over India. The themes of the hackathon were diverse and we chose to build an app that can solve the problem of tracking the nutritional value of whatever you eat with just a simple snap. The app processes the image of a food item, retrieves nutritional content and also suggests recipes based on your daily calorie limit/goal. We won the third prize at this hackathon. + + + +Since we were a team of 4 composed of two python developers ([rhnvrm][2], [mrkaran_][3]) and two android developers ([mayank_saxena96][4], [arpit_gogia][5]), we started with a creating a [GitHub Organization][6] to organize our code. We had separate repositories for our _Backend API_ and _Android App_. Being lazy, we set up a webhook to Heroku to automatically deploy new builds whenever new code is pushed. + +**Tech Stack**: We used Python (Flask) for our API, Parse for the user database and Android for the mobile app. We have used CloudSight, NutritionX API and Spoonacular API. On the Android app, one of our main goals was to accomplish a low bandwidth connection to our server. Cameras on mobile device these days are capable of reproducing high quality photos measuring up to 6 MB in size. By using a simple Bitmap scaling down mechanism, we were able to reduce the size to around 200 kB, thus allowing users to use our app on low bandwidth connections like 2G. + +**User Flow**: We built our core API on Flask(Python) and hosted it on Heroku. The image is sent as multipart data from Android App as a POST request to /upload endpoint which calls CloudSIght API to retrieve food item name and then NutritionX API is called to retrieve relevant nutritional data of that item. The daily calorie limit is set at the time of signup, and this is deducted every time a new food item is added. Using Spoonacular API we get a list of recommended recipes which are within bounds of daily calorie limit. + +**Documentation**: We have properly documented our API endpoints for reference to other people. It is available [here][7] + +**Future Work**: Our aim is to integrate social features into this app, provide leaderboards, share healthy food items a user recommends to his/her followers. We will include some data insights on user’s food consumption and give him/her suggestions on what to consume to achieve his goal, provide visualizations, build a streak for providing an incentive to the user for eating healthy. We have already built our core API so porting this app to other platforms like iOS, web won’t be much difficult. + +You can see the demo video here: + + + +  + + [1]: http://www.hack-nsit.in/ + [2]: https://twitter.com/rhnvrm + [3]: https://twitter.com/mrkaran_ + [4]: https://twitter.com/mayank_saxena96 + [5]: https://twitter.com/arpit_gogia + [6]: http://github.com/CapsLockHacks/ + [7]: https://anypoint.mulesoft.com/apiplatform/rhnvrm/#/portals/organizations/ba699460-af7b-4192-b37f-7e7d635c9a8a/apis/62058/versions/64448 \ No newline at end of file diff --git a/content/blog/2016-05-07-adding-support-for-vector-instructions-to-8051-architecture.md b/content/blog/2016-05-07-adding-support-for-vector-instructions-to-8051-architecture.md new file mode 100644 index 0000000..b4c2f77 --- /dev/null +++ b/content/blog/2016-05-07-adding-support-for-vector-instructions-to-8051-architecture.md @@ -0,0 +1,15 @@ +--- +title: Adding Support for Vector Instructions to 8051 Architecture +author: rhnvrm +type: post +date: 2016-05-07T00:00:48+00:00 +url: blog/2016/05/07/adding-support-for-vector-instructions-to-8051-architecture/ +categories: + - projects + +--- +This was a group project for the Computer Architecture course at SNU under Prof. Rajeev Kumar Singh. Our team wrote a theoretical paper in which the focus is on adding support for vector instructions to the Intel 8051 architecture. The proposed architecture has a new vector register bank and a unit to decode the vector addresses. The team was composed of Akhil Alluri, Dhiraj Balakrishnan, Manvendra Singh, Rohan Verma, and Pulkit Gairola. This project can be used to demonstrate how one can add specialized vectorisation capabilities to architectures found in microcontrollers. + +[View Fullscreen][1] + + [1]: /wp-content/plugins/pdfjs-viewer-shortcode/pdfjs/web/viewer.php?file=/wp-content/uploads/2016/12/8051_Vectorization.pdf&download=true&print=true&openfile=false \ No newline at end of file diff --git a/content/blog/2016-05-10-participating-in-google-summer-of-code-2016.md b/content/blog/2016-05-10-participating-in-google-summer-of-code-2016.md new file mode 100644 index 0000000..dfc3202 --- /dev/null +++ b/content/blog/2016-05-10-participating-in-google-summer-of-code-2016.md @@ -0,0 +1,34 @@ +--- +title: Participating in Google Summer of Code 2016 +author: rhnvrm +type: post +date: 2016-05-10T00:00:00+00:00 +url: blog/2016/05/10/participating-in-google-summer-of-code-2016/ +categories: + - gsoc + - projects + +--- +This summer I will be working on an open source project called [Apache + +Allura][1]. This software powers [SourceForge.net][2] + +and is developed + +under the [Apache Software Foundation][3]. My mentors are + +[Dave Brondsema][4] + +and [Heith Seewald][5] who have been guiding me along the way during the application + +period and the community bonding period and I hope to have an amazing summer working + +with them. + +I will keep updating my progress on this blog so stay tuned! + + [1]: https://allura.apache.org/ + [2]: http://sourceforge.net + [3]: https://www.apache.org/ + [4]: http://brondsema.net + [5]: https://twitter.com/heiths \ No newline at end of file diff --git a/content/blog/2016-05-20-building-planet-gsoc.md b/content/blog/2016-05-20-building-planet-gsoc.md new file mode 100644 index 0000000..928e492 --- /dev/null +++ b/content/blog/2016-05-20-building-planet-gsoc.md @@ -0,0 +1,48 @@ +--- +title: Building Planet GSoC +author: rhnvrm +type: post +date: 2016-05-20T00:00:00+00:00 +url: blog/2016/05/20/building-planet-gsoc/ +categories: + - gsoc + - projects + +--- +There were many emails in the GSoC mailing list regarding ‘sharing’ blogs + +with the GSoC community. Many GSoC students keep blogs to track their + +progress. It becomes really tough to track hundreds of blogs so I thought + +of starting a blog aggregator. + +Most of the solutions that had been developed until now required setting up a server + +that would generate a static file of all the blogs. But I wanted a solution + +that was easy to set up and could be deployed by anyone by clicking a single button on github. + +The motivation for this was my conversation with James Lopeman (meflin) on irc who + +is an org-admin at the Python Software Foundation. Before + +that conversation, I had already set up a simple method using [river5][1] + +developed by + +[Dave Winer][2] but later I extended it to include a deploy on openshift button. + +Currently, around 48 blogs are indexed by [PlanetGSoC][3]. It + +can be forked by anyone to deploy their own planet on GitHub.io since it uses + +JSONP requests to fetch the JSON river from the server running on openshift. + +Feel free to fork the project or contribute! And if you have a blog related to GSoC be + +sure to send a pull request. + + [1]: https://github.com/scripting/river5 + [2]: https://github.com/scripting + [3]: http://planetGSoC.github.io \ No newline at end of file diff --git a/content/blog/2016-05-30-installing-apache-allura-on-digital-ocean.md b/content/blog/2016-05-30-installing-apache-allura-on-digital-ocean.md new file mode 100644 index 0000000..651b0b1 --- /dev/null +++ b/content/blog/2016-05-30-installing-apache-allura-on-digital-ocean.md @@ -0,0 +1,46 @@ +--- +title: Installing Apache Allura on Digital Ocean +author: rhnvrm +type: post +date: 2016-05-30T00:00:00+00:00 +url: blog/2016/05/30/installing-apache-allura-on-digital-ocean/ +categories: + - gsoc + - projects + +--- +Installing Apache Allura on your [Digital Ocean][1] droplet is now as easy as typing make install. + +[Apache Allura][2] is a Software Forge that powers [SourceForge.net][3]. Today, + +I created a Makefile that simplifies the process of setting up Allura on a Digital Ocean droplet. The source code is hosted + +on + +and on [github][4]. + +Here are the steps to get started with deploying your own instance of Apache Allura. + + 1. Set up your [digital ocean][1] account and spin up a new Ubuntu 14.04 droplet. + 2. SSH into your droplet’s root ssh root@<DO_id> and + + clone the repository using git clone https://rhnvrm@forge-allura.apache.org/git/u/rhnvrm/allura-install + 3. Change your working directory into the cloned repository. cd allura-install + 4. Install git and make using apt-get install git make + 5. Run make install + +If you face an error during a make step, report it to the issue tracker on [github][5]. + +If it is an error that you can fix or due to some network errors, you can run the next step listed in the make file. + +Suppose, you faced an error during the npm install inside the initialize-allura-taskd, you can run make initialize-allura-taskd again and + +then run each next step in a simlar fashion (such as initialize-allura-data) + +Finally, run make start (only required if make failed during a certain step) + + [1]: http://digitalocean.com + [2]: http://allura.apache.org + [3]: http://sourceforge.net + [4]: http://github.com/rhnvrm/allura-install + [5]: http://github.com/rhnvrm/allura-install/issues \ No newline at end of file diff --git a/content/blog/2016-06-20-vim-as-your-daily-log-notebook.md b/content/blog/2016-06-20-vim-as-your-daily-log-notebook.md new file mode 100644 index 0000000..f5947db --- /dev/null +++ b/content/blog/2016-06-20-vim-as-your-daily-log-notebook.md @@ -0,0 +1,26 @@ +--- +title: Vim as your daily log notebook +author: rhnvrm +type: post +date: 2016-06-20T00:00:00+00:00 +url: blog/2016/06/20/vim-as-your-daily-log-notebook/ +categories: + - uncategorized + +--- +There are probably hundreds of methods and software that have been written that can help you maintain a notebook that contains your daily logs and notes. + +I have tried tens of methods and software and after a few days they just feel like bloat or take up too much time to maintain regularly. + +So, I decided to break down my own problem and found a simplisitic method/solution that suits me. My need was to write two logs, one life log and one dev log which was distraction free and would not take more than a second to get started with. + +I finally ended up with editing my zshrc and vimrc. Now, I just end up doing the following every morning: + + 1. Open the terminal (ctrl + t) + 2. type today [This opens a split window having my life log and dev log side by side] + 3. type nlog<space> to start a new log entry. + +You can look at my commits [here][1] and [here][2] to see how I have done it and modify it for yourself. + + [1]: https://github.com/rhnvrm/dotfiles/commit/04a61fdb0a671e6de64f37730845b85fa7bf6109 + [2]: https://github.com/rhnvrm/dotfiles/commit/81ebfa3f804032c8386d741232daa9744c54429c \ No newline at end of file diff --git a/content/blog/2016-08-04-to-draft-or-not-to-draft.md b/content/blog/2016-08-04-to-draft-or-not-to-draft.md new file mode 100644 index 0000000..8076b77 --- /dev/null +++ b/content/blog/2016-08-04-to-draft-or-not-to-draft.md @@ -0,0 +1,13 @@ +--- +title: To Draft or not to Draft +author: rhnvrm +type: post +date: 2016-08-04T00:00:00+00:00 +url: blog/2016/08/04/to-draft-or-not-to-draft/ +categories: + - uncategorized + +--- +I just realized that I have way more drafts pending in my blog than the actual posts that are published here. Maybe, it is because I am afraid of being incorrect. Well, today I have decided that I will not worry about being correct and will post rather than draft. The motivation to publish a pending draft drops exponentially for me with time. So, if any of my readers find any mistake in my posts; please notify me so that I can correct it for my and my reader’s sake. + +_Update_: The irony here is that I had left this post as a draft. Posting it here as a cruel joke on myself. \ No newline at end of file diff --git a/content/blog/2016-08-05-what-is-apache-allura-and-why-is-it-relevant-to-developers.md b/content/blog/2016-08-05-what-is-apache-allura-and-why-is-it-relevant-to-developers.md new file mode 100644 index 0000000..b449c01 --- /dev/null +++ b/content/blog/2016-08-05-what-is-apache-allura-and-why-is-it-relevant-to-developers.md @@ -0,0 +1,62 @@ +--- +title: What is Apache Allura and why is it relevant to developers? +author: rhnvrm +type: post +date: 2016-08-05T00:00:00+00:00 +url: blog/2016/08/05/what-is-apache-allura-and-why-is-it-relevant-to-developers/ +categories: + - gsoc + +--- +Apache Allura is a Top-Level Project under the Apache Software Foundation since April of 2014. + +It powers SourceForge, Open Source Projects Europe, DLR German Aerospace Center and DARPA’s VehicleForge. + +The most interesting features that distinguish Apache Allura from currently trending Forge Software like GitHub, GitLab and + +the Atlassian Toolkit are + +it’s modularity and use of well-known python technologies. It is one of the easiest to set up for personal or professional use + +and even for use by big organisations. It reaches millions of users and developers throught the ~500,000 projects hosted + +on SourceForge. + +With having minimal steps in setting up your own instance of Apache Allura on a DigitalOcean droplet, a RaspberryPi, or simply + +using SourceForge.net it is + +one of the most valueable products that you can deploy for your team for collaborating on code, + +documentation, research, or even blogging, chatting, discussing or even maintaining your personal Wiki. It is very convenient for new + +users to setup in terms of usablity by using the defaults and also provides enough tools, settings, access control and ways to modify your Forge + +for powerusers. + +This week, I will be posting a series of posts about Allura. So stay tuned! + +Further Reading: + + * [An Open Forge][1] + * [The Apache Software Foundation Announces Apache™ Allura™ as a Top-Level Project][2] + * [Open Hub][3] + * [About SourceForge][4] + * [About DARPA VehicleForge][5] + * [SourceForge announces Apache Allura][6] + * [Apache Allura Wiki – Features][7] + * [Apache Allura Wiki – Feature Comparison][8] + * [Source Code][9] + * Also hosted as a mirror on Github: [![GitHub Stars][10]][11] + + [1]: https://sourceforge.net/url: blog/an-open-forge/ + [2]: https://blogs.apache.org/foundation/entry/the_apache_software_foundation_announces52 + [3]: https://www.openhub.net/p/allura + [4]: https://sourceforge.net/about + [5]: http://cps-vo.org/group/avm/vehicleforge + [6]: https://sourceforge.net/url: blog/apache-allura-becomes-top-level-project/ + [7]: https://forge-allura.apache.org/p/allura/wiki/Features/ + [8]: https://forge-allura.apache.org/p/allura/wiki/Feature%20Comparison/ + [9]: https://forge-allura.apache.org/p/allura/git/ci/master/tree/ + [10]: https://img.shields.io/github/stars/apache/allura.svg + [11]: https://github.com/apache/allura/stargazers \ No newline at end of file diff --git a/content/blog/2016-08-06-topological-sort-for-problems-using-dag.md b/content/blog/2016-08-06-topological-sort-for-problems-using-dag.md new file mode 100644 index 0000000..aac14df --- /dev/null +++ b/content/blog/2016-08-06-topological-sort-for-problems-using-dag.md @@ -0,0 +1,111 @@ +--- +title: Topological Sort for problems using DAG +author: rhnvrm +type: post +date: 2016-08-06T00:00:00+00:00 +url: blog/2016/08/06/topological-sort-for-problems-using-dag/ +categories: + - uncategorized + +--- +Given a DAG (Directed Acyclic Graph), in which we know the adjacencies represent the order in which to perform a task, and the + +vertices are tasks, we want to place the vertices in a sequence. We must find a sequence that must satisfy + +all dependencies of pre-requisites. This sequential arrangement of the vertices is called the topological sort of the DAG. + +The first examples that come in my mind are of pre-requisite chains in courses offered at universities. Suppose, you were + +given a challenge to plot a roadmap for everyone in your university about how they can complete their major and/or minor given + +the courses they have already completed. Another one to which I was exposed recently was of finding out the complete sequence + +of events that took place if only given a partial sequence and also to detect if the given information was accurate or not. + +Accuracy of the given information can be detected by checking if at any point in the algorithm we detect a cycle. Since, + +such problems are being expressed through DAGs, if there exists any cycle in the graph, it can be concluded that the graph will + +not have a topological sort. The proof for this can be found [here][1] + +Suppose we have the following graphs: + +
+
<span class="n">graph1</span> <span class="o">=</span> <span class="p">{</span> <span class="s">"x"</span> <span class="p">:</span> <span class="p">[</span><span class="s">"y"</span><span class="p">],</span>
+                <span class="s">"z"</span> <span class="p">:</span> <span class="p">[</span><span class="s">"y"</span><span class="p">],</span>
+                <span class="s">"y"</span> <span class="p">:</span> <span class="p">[],</span>
+                <span class="s">"a"</span> <span class="p">:</span> <span class="p">[</span><span class="s">"b"</span><span class="p">],</span>
+                <span class="s">"b"</span> <span class="p">:</span> <span class="p">[</span><span class="s">"c"</span><span class="p">],</span>
+                <span class="s">"c"</span> <span class="p">:</span> <span class="p">[]</span> <span class="p">}</span>
+
+
+ +
+
<span class="n">graph2</span> <span class="o">=</span> <span class="p">{</span><span class="s">"x"</span> <span class="p">:</span> <span class="p">[</span><span class="s">"y"</span><span class="p">],</span> <span class="s">"y"</span><span class="p">:</span> <span class="p">[</span><span class="s">"x"</span><span class="p">]}</span>
+
+
+ +Here, you can notice how graph1 has a toposort but for graph2, it does not exist. This is because of the fact there + +exists a cycle in the graph. We can also understand it using the proof of the statment I had mentioned above. “Topological + +sort exists only for a DAG” and since graph2 is not a DAG (since, it is cyclic) it must not have a toposort. + +We can find the toposort using a modified dfs algorithm or kahn’s algorithm. + +[Kahn’s algorithm][2] is discussed in the link and depends and utilizes + +on calculating the indegree of all the vertices and using Queue (although it can also be written using an array). + +Here is my implementation using Modified DFS and an array as a (kind-of) stack: + +
+
<span class="k">def</span> <span class="nf">dfs_toposort</span><span class="p">(</span><span class="n">graph</span><span class="p">):</span>
+    <span class="n">L</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="n">color</span> <span class="o">=</span> <span class="p">{</span> <span class="n">u</span> <span class="p">:</span> <span class="s">"white"</span> <span class="k">for</span> <span class="n">u</span> <span class="ow">in</span> <span class="n">graph</span> <span class="p">}</span>
+    <span class="n">found_cycle</span> <span class="o">=</span> <span class="p">[</span><span class="bp">False</span><span class="p">]</span>
+    
+    <span class="k">for</span> <span class="n">u</span> <span class="ow">in</span> <span class="n">graph</span><span class="p">:</span>
+        <span class="k">if</span> <span class="n">color</span><span class="p">[</span><span class="n">u</span><span class="p">]</span> <span class="o">==</span> <span class="s">"white"</span><span class="p">:</span>
+            <span class="n">dfs_visit</span><span class="p">(</span><span class="n">graph</span><span class="p">,</span> <span class="n">u</span><span class="p">,</span> <span class="n">color</span><span class="p">,</span> <span class="n">L</span><span class="p">,</span> <span class="n">found_cycle</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">found_cycle</span><span class="p">[</span><span class="mi">0</span><span class="p">]:</span>
+            <span class="k">break</span>
+    
+    <span class="k">if</span> <span class="n">found_cycle</span><span class="p">[</span><span class="mi">0</span><span class="p">]:</span>
+        <span class="n">L</span> <span class="o">=</span> <span class="p">[]</span>
+    
+    <span class="n">L</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
+    <span class="k">return</span> <span class="n">L</span>
+
+<span class="k">def</span> <span class="nf">dfs_visit</span><span class="p">(</span><span class="n">graph</span><span class="p">,</span> <span class="n">u</span><span class="p">,</span> <span class="n">color</span><span class="p">,</span> <span class="n">L</span><span class="p">,</span> <span class="n">found_cycle</span><span class="p">):</span>
+    <span class="k">if</span> <span class="n">found_cycle</span><span class="p">[</span><span class="mi">0</span><span class="p">]:</span>
+        <span class="k">return</span>
+    <span class="n">color</span><span class="p">[</span><span class="n">u</span><span class="p">]</span> <span class="o">=</span> <span class="s">"gray"</span>
+    
+    <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">graph</span><span class="p">[</span><span class="n">u</span><span class="p">]:</span>
+        <span class="k">if</span> <span class="n">color</span><span class="p">[</span><span class="n">v</span><span class="p">]</span> <span class="o">==</span> <span class="s">"gray"</span><span class="p">:</span>
+            <span class="n">found_cycle</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="bp">True</span>
+            <span class="k">return</span>
+        <span class="k">if</span> <span class="n">color</span><span class="p">[</span><span class="n">v</span><span class="p">]</span> <span class="o">==</span> <span class="s">"white"</span><span class="p">:</span>
+            <span class="n">dfs_visit</span><span class="p">(</span><span class="n">graph</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">color</span><span class="p">,</span> <span class="n">L</span><span class="p">,</span> <span class="n">found_cycle</span><span class="p">)</span>
+    
+    <span class="n">color</span><span class="p">[</span><span class="n">u</span><span class="p">]</span> <span class="o">=</span> <span class="s">"black"</span>
+    <span class="n">L</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">u</span><span class="p">)</span>
+
+
+ +The function dfs_toposort returns an empty array if there exists a cycle in the graph. + +Also, it is important to note here that the topological sort need not be unique. (Hence, for competitive programming + +problems it might be easier to find problems that involve checking if a given graph is a DAG or not; or if a sequence + +satisfying the pre-req chain exists or not by detecting cycles). This is quite evident once you realize that there might + +be many 0-in-degree vertices that can lead the toposort result. + +You can also see [Erik Demaine’s][3] lecture on this topic given for MIT 6.006 + + [1]: https://ece.uwaterloo.ca/~cmoreno/ece250/2012-03-16--topological-sort.pdf + [2]: http://www.geeksforgeeks.org/topological-sorting-indegree-based-solution/ + [3]: https://www.youtube.com/watch?v=AfSk24UTFS8 \ No newline at end of file diff --git a/content/blog/2016-08-07-share-wifi-via-ethernet-on-gnome-3-20.md b/content/blog/2016-08-07-share-wifi-via-ethernet-on-gnome-3-20.md new file mode 100644 index 0000000..d314c67 --- /dev/null +++ b/content/blog/2016-08-07-share-wifi-via-ethernet-on-gnome-3-20.md @@ -0,0 +1,25 @@ +--- +title: Share WiFi via Ethernet on Gnome 3.20 +author: rhnvrm +type: post +date: 2016-08-07T00:00:00+00:00 +url: blog/2016/08/07/share-wifi-via-ethernet-on-gnome-3-20/ +categories: + - foss + - notes +tags: + - fedora + - gnome + - linux + +--- +There is a hidden method to share your WiFi over Ethernet in the latest Gnome. I stumbled upon this while trying to connect + +my RaspberryPi 3B with my University’s Internet. + + 1. Type nm-connection-editor in your terminal. + 2. Add a shared network connection by pressing the Add button. + 3. Choose Ethernet from the list and press Create. + 4. Click IPv4 Settings in the left. + 5. Choose Shared to other computers by clicking the Method drop-down menu. + 6. Enter a new name like Shared WiFi LAN as the Connection name at the top \ No newline at end of file diff --git a/content/blog/2016-08-09-apache-allura-gsoc-2016-summary.md b/content/blog/2016-08-09-apache-allura-gsoc-2016-summary.md new file mode 100644 index 0000000..b08e080 --- /dev/null +++ b/content/blog/2016-08-09-apache-allura-gsoc-2016-summary.md @@ -0,0 +1,171 @@ +--- +title: Apache Allura – GSoC 2016 Summary +author: rhnvrm +type: post +date: 2016-08-09T00:00:00+00:00 +url: blog/2016/08/09/apache-allura-gsoc-2016-summary/ +categories: + - gsoc + - projects + +--- +This post has the summary of my work during GSoC 2016. Hopefully I was able to cover everything. You can also see my work on [forge-allura][1]. Also, you can visually see a list of my commits made during GSoC that also contains the miscellaneous work [here][2]. + +### Discussion Tool Changes {#discussion-tool-changes} + +The idea behind this change was to promote discussions on the platform. Most conversations on the web are now displayed in a similar format. The replies to a comment are also now anchored to the left, i.e. don’t become shorter in length and are only shifted towards the left along with a smaller avatar. We have also moved away from shadows under the avatars since they do not match with the current design scheme. + +The design enhances the username and avatar of the user to make it easier to recognize who has authored the comment. Also, the buttons used to interact in the discussion are now displayed on the upper right side. Also, there is now a unified design theme for all buttons including the moderation buttons. These set of buttons can easily be extendened in the future as well. This also makes more space available for the content. Images now do not overflow outside these bubbles and fit inside the bubbles. + +![Design Example of Discussion][3] + +Another prominent change is how we now display attachments. There is now a dedicated download and delete button for all attachments and an icon beside the file name displaying the type of attachment. + +Support for viewing the photo attachments has also been added by clicking on the image thumbnail inside the attachment box. + +![Preview Images][4] + +There has also been a change in how we display meta posts which share information rather than conversational text that is generated by the interaction of the user with the tools. These are not highlighted and uses smaller fonts so it is easier for the eyes to find real content and also distinguish between meta information and the same. + +![Meta Posts][5] + +You can also use Unicode Emoji’s within the discussion tool and they will be rendered as Twitter Style Emoji. This is very useful since we now have support for displaying the emoji even if the user don’t have the proper font’s to render them in his browser. + +![Imgur][6] + +Emoji Support enables users to use their devices emoji input keyboards and enter data. Also, now teams can use a simple Thumbs Up emoji instead of writing words to express themselves. + +You can view the results live on [SourceForge][7] as well. + +### Improved Landing Page {#improved-landing-page} + +![Imgur][8] + +We now have a better landing page. A landing page is forms the first impression for the tool. Although, if you are probably using SourceForge, your landing page might be the Project Catalog. + +Now we list all the neighborhoods in a block showing it’s logo along with the name and number of projects it contains. + +It makes it easier to digest the concept of neighborhoods for users who are used to something similar to Github or GitLab. + +### Minor Improvements in Ticket Listing and Search {#minor-improvements-in-ticket-listing-and-search} + +Now you can resize the length of the columns in the ticket listing. + +![Resize][9] + +Also you can now click on the username in the Owner column to view all tickets that have been assigned to that user directly from the ticket listing. + +### Merge Request Flow Improvements {#merge-request-flow-improvements} + +Now we show a link to Merge Requests listing in the side panel in all tools that support them even if none have been created. + +![List if zero][10] + +Also the filtering of merge requests have changed a bit. Now we have a new set of filter buttons that we use to filter the merge requests that are either open, rejected, merged. + +![Filter MRs][11] + +Also, there are now dedicated buttons matching the Forge theme that you can use to manage your merge requests. We now have an array of buttons and a text message that displays the status of the merge conflicts and if a one click merge is possible if you have access to that information. Users with correct priveleges can also click on the Reject button to reject and close the MR in two clicks including a confirmation dialog. + +Also, you can now Refresh the commits without having to manually edit the merge request, saving 4-5 clicks using the Refresh Commits button. + +![Imgur][12] + +### What could not be completed or was not done {#what-could-not-be-completed-or-was-not-done} + +#### Implement async loading of comments and allow them to be paginated. {#implement-async-loading-of-comments-and-allow-them-to-be-paginated} + +This was not implemented since there would be a loss in the traffic for the discussions. This would have a huge impact in search rankings for comments since crawlers don’t index async loaded comments and searching for problems on the internet is a very important way to reach this content. Suppose you have a problem you have faced with TexStudio software and search about it on a search engine and someone else has also reported a problem on it’s bug tracker then if it is not indexed in the search engine we will not be able to find it on the search results. + +#### Make Allura Responsive {#make-allura-responsive} + +This is something which I worked on for atleast 2 weeks and trying to find the most optimal solution. Even before starting there was some doubt about the feasability. But my final decision was that it is not feasible to do. This was due to the fact that there is no way to move to a fully functional mobile experience without altering the current structure of the project. The best way forward would be to move to bootstrap or some similar project. Also, this way we would be able to have a good enough way to move forward with the project. + +The first major problem I faced was keeping intact the design so that it does not break SourceForge. + +My first approach was to change the current method of using viewport based widths instead of fixed pixel widths. + +My next approach was to add media queries and then change the pixel values accordingly. + +Next I tried to use the method suggested by mentor to detect if we have a mobile browser and display a different template. This works, but is of no use if all the templates are not modified. So for testing I edited the width of the holders to the viewport size but then I realized if the inside is not also properly updated it would be of no use. Also all tests relating to that component would fail. + +So I moved on to work on other parts of the project. + +#### Extend the models in the threads to allow voting(express +1, LGTM etc.) on individual comments. {#extend-the-models-in-the-threads-to-allow-votingexpress-1-lgtm-etc-on-individual-comments} + +There were two ways I tried to implement this. + +First was to add a thumbs up button on the menu of the discussion bubble along side reply. + +![Imgur][6] + +Clicking that button adds a meta post as a reply to the post. But it looks ugly and does not seem useful. + +![Plus 1][13] + +The other method was to try to make the artifact votable but here the problem was that I could not get it to work as per my thought of how it should look and work. In this way I wanted a menu on the bottom. + +The code for all of these unimplemented work is available on my forked repo on forge-allura [here][14]. You can find all the branches with the unimplemented work mentioned here as well as other experiments. (My Branches begin with feature or rhnvrm/) + +### Other Cool Stuff I did related to Allura {#other-cool-stuff-i-did-related-to-allura} + +#### Makefile to install Allura with one command {#makefile-to-install-allura-with-one-command} + +You can now install Allura very easily if you don’t have docker or are not able to use it due to some reason + + + + 1. Set up your [digital ocean][15] account and spin up a new Ubuntu 14.04 droplet. + 2. SSH into your droplet’s root ssh root@<DO_id> and + + clone the repository using git clone https://rhnvrm@forge-allura.apache.org/git/u/rhnvrm/allura-install + 3. Change your working directory into the cloned repository. cd allura-install + 4. Install git and make using apt-get install git make + 5. Run make install + +#### Installed Allura on a RaspberryPi B {#installed-allura-on-a-raspberrypi-b} + +To show how it can even be run on a low powered device I installed Allura for me and my friends on a RPi 3B model. + +There were various problems that I faced during installation due to it being an ARM based device. I first tried to install using docker since it was easier but after installing docker and docker-compose from hyperiot I soon realized that it was not possible as it is ARM based and we don’t provide docker support for that. + +Here the makefile was very useful. Although I did not use it directly but I atleast had an idea how to install Allura step by step instead of having to re read the manual again and again. + +![Imgur][16] + +#### Deployed Allura for my University {#deployed-allura-for-my-university} + +Using the Raspberry Pi I am planning to deploy it for my university for using it for our Coding Club and also for internal usage. I have emailed my department and am hoping for a positive response. + +#### Setup and hosted a small Allura Instance for testing on Digital Ocean {#setup-and-hosted-a-small-allura-instance-for-testing-on-digital-ocean} + +During GSoC I ran Allura on a droplet for testing since my old laptop was having some issues with it’s graphics card. I was able to use a netbook and vim to test my changes on the droplet until I got my new laptop. + +### ShoutOut to tools that I used during GSoC {#shoutout-to-tools-that-i-used-during-gsoc} + + 1. ZimWiki + 2. PyCharm + 3. Vim + 4. Digital Ocean + 5. Docker + 6. Pomodoro Timer App for Gnome + 7. Postman + 8. HexChat + 9. Imgur for hosting the image album () + + [1]: https://forge-allura.apache.org/p/allura/git + [2]: https://github.com/apache/allura/commits/f403b8c4e44f2065e4d4529050d499252e914f25?author=rhnvrm + [3]: https://i.imgur.com/4gmxwcL.png + [4]: https://i.imgur.com/Qw2g7at.png + [5]: https://i.imgur.com/Ch77UNq.png + [6]: https://i.imgur.com/LoTab39.png + [7]: https://sourceforge.net/p/texstudio/bugs/1872/ + [8]: https://i.imgur.com/kvul0nB.png + [9]: https://i.imgur.com/iC3fGex.gif + [10]: https://i.imgur.com/tfTkcjR.png + [11]: https://i.imgur.com/izu38m5.png + [12]: https://i.imgur.com/rkjlglc.png + [13]: https://i.imgur.com/GycKCDW.png + [14]: https://forge-allura.apache.org/u/rhnvrm/allura/ref/master/branches/ + [15]: http://digitalocean.com + [16]: https://i.imgur.com/2VdVmnN.jpg \ No newline at end of file diff --git a/content/blog/2016-10-20-hello-wordpress.md b/content/blog/2016-10-20-hello-wordpress.md new file mode 100644 index 0000000..e019ba7 --- /dev/null +++ b/content/blog/2016-10-20-hello-wordpress.md @@ -0,0 +1,13 @@ +--- +title: Hello WordPress +author: rhnvrm +type: post +date: 2016-10-20T19:09:37+00:00 +url: blog/2016/10/20/hello-wordpress/ +categories: + - uncategorized + +--- +I’m back to using WordPress from Jekyll. I followed David Lynch’s blog post to import my posts from the jekyll blog hosted on github.io + +Although, I did not use the plugins made by him, they might be useful if you had a lot of Disqus comments in your blog. \ No newline at end of file diff --git a/content/blog/2016-10-22-labeled-tweet-generator-and-galaxy-image-classifier-featured-in-sirajologys-youtube-videos.md b/content/blog/2016-10-22-labeled-tweet-generator-and-galaxy-image-classifier-featured-in-sirajologys-youtube-videos.md new file mode 100644 index 0000000..57c6cc1 --- /dev/null +++ b/content/blog/2016-10-22-labeled-tweet-generator-and-galaxy-image-classifier-featured-in-sirajologys-youtube-videos.md @@ -0,0 +1,35 @@ +--- +title: Labeled Tweet Generator and Galaxy Image Classifier featured in Sirajology’s Youtube Videos +author: rhnvrm +type: post +date: 2016-10-22T18:57:59+00:00 +url: blog/2016/10/22/labeled-tweet-generator-and-galaxy-image-classifier-featured-in-sirajologys-youtube-videos/ +categories: + - projects + +--- +I have been learning about machine learning and data science recently. Coincidentally, I found this cool Youtube channel called Sirajology and I must recommend it to any one who has also just begun his journey on this path like me. Each video has a challenge attached with it in the end. I participated in two of them by submitting my projects based on the specifications of the challenge and they were featured on the channel. + +Siraj classified me as “Badass of the Week” in these videos. + +The first project I made was a Galaxy Image Classifier (), which I trained using a dataset I created myself. I believe the results could have been better if I had used better images. + +It was based on this video: + + + +And it was featured in the next video in the series: + + + +The second project was a Labeled Tweet Dataset Generator (). Using this project, a datascientist can open and type his query in the searchbox and look at the results and if he is happy with them he can click the download as csv button to save them and work on it. + +It was based on this video: + + + +and was featured in this one: + + + +  \ No newline at end of file diff --git a/content/blog/2016-10-31-just-installed-a-new-theme-for-the-blog.md b/content/blog/2016-10-31-just-installed-a-new-theme-for-the-blog.md new file mode 100644 index 0000000..6575f9f --- /dev/null +++ b/content/blog/2016-10-31-just-installed-a-new-theme-for-the-blog.md @@ -0,0 +1,17 @@ +--- +title: Just installed a new theme for the blog… +author: rhnvrm +type: post +date: 2016-10-31T23:17:15+00:00 +url: blog/2016/10/31/just-installed-a-new-theme-for-the-blog/ +categories: + - uncategorized +tags: + - ajax + - wordPress +format: status + +--- +Just installed a new theme for the blog called P2. I’m using a child theme called Mercury. Also installed and played with a bunch of plugins. Want to try micro blogging and also live blogging during my coding sessions. + +Also, learnt that AJAX requests don’t seem to work behind proxies. P2 sends an initial Ajax request when you click on post from the front-end and it was failing, scourged the internet but couldn’t find a solution. So lesson learnt that you should always try a different device in such cases early on. \ No newline at end of file diff --git a/content/blog/2016-11-01-todays-git-tip-in-gitconfig-url-gitgithub.md b/content/blog/2016-11-01-todays-git-tip-in-gitconfig-url-gitgithub.md new file mode 100644 index 0000000..3b37b2f --- /dev/null +++ b/content/blog/2016-11-01-todays-git-tip-in-gitconfig-url-gitgithub.md @@ -0,0 +1,26 @@ +--- +title: 'Today’s git tip In gitconfig url git@github…' +author: rhnvrm +type: post +date: 2016-11-01T09:45:37+00:00 +url: blog/2016/11/01/todays-git-tip-in-gitconfig-url-gitgithub/ +categories: + - uncategorized +tags: + - git +format: quote + +--- +Today’s git tip + +In .gitconfig: + +[url “git@github.com:”] + +insteadOf = gh: + +Now you can do, eg: + +$ git clone gh:kisielk/errcheck + +https://twitter.com/kisielk/status/793133952542191616 \ No newline at end of file diff --git a/content/blog/2016-11-02-i-wonder-what-linus-torvalds-view-is-about.md b/content/blog/2016-11-02-i-wonder-what-linus-torvalds-view-is-about.md new file mode 100644 index 0000000..0995372 --- /dev/null +++ b/content/blog/2016-11-02-i-wonder-what-linus-torvalds-view-is-about.md @@ -0,0 +1,16 @@ +--- +title: I wonder what Linus Torvald’s view is about… +author: rhnvrm +type: post +date: 2016-11-02T16:44:09+00:00 +url: blog/2016/11/02/i-wonder-what-linus-torvalds-view-is-about/ +categories: + - uncategorized +tags: + - git +format: link + +--- +I wonder what Linus Torvald’s view is about “Gitless” + +https://news.mit.edu/2016/gitless-making-it-easier-to-collaborate-on-code-1025 \ No newline at end of file diff --git a/content/blog/2016-11-07-a-tip-on-using-fsck-when-you-are.md b/content/blog/2016-11-07-a-tip-on-using-fsck-when-you-are.md new file mode 100644 index 0000000..e285f07 --- /dev/null +++ b/content/blog/2016-11-07-a-tip-on-using-fsck-when-you-are.md @@ -0,0 +1,14 @@ +--- +title: A tip on using fsck when you are… +author: rhnvrm +type: post +date: 2016-11-07T22:24:09+00:00 +url: blog/2016/11/07/a-tip-on-using-fsck-when-you-are/ +categories: + - uncategorized +tags: + - linux +format: status + +--- +A tip on using fsck when you are stuck in emergency mode. Whenever you are using \`fsck -y\` and it does not allow you to run because a certain device (say /dev/sdaX) is mounted, it does not mean you can’t run \`fsck -y /dev/sdaY\`. That is you don’t unmount that device. \ No newline at end of file diff --git a/content/blog/2016-11-08-feeling-excited-about-attending-apachecon-big-data-and.md b/content/blog/2016-11-08-feeling-excited-about-attending-apachecon-big-data-and.md new file mode 100644 index 0000000..6dd0ddf --- /dev/null +++ b/content/blog/2016-11-08-feeling-excited-about-attending-apachecon-big-data-and.md @@ -0,0 +1,15 @@ +--- +title: Feeling excited about attending ApacheCon Big Data and… +author: rhnvrm +type: post +date: 2016-11-08T17:41:10+00:00 +url: blog/2016/11/08/feeling-excited-about-attending-apachecon-big-data-and/ +categories: + - uncategorized +tags: + - aceu16 + - allura +format: status + +--- +I’m excited about attending ApacheCon Big Data and ApacheCon 16 at Seville, Spain. Only a few days are left. Talked with my mentor at Apache Allura, @brondsem today about his experiences at ApacheCon NA Denver 14 and what all I could do at ACEU 16. We’re hoping for improving the exposure of Apache Allura within the Apache community and trying to get some projects in the incubator to try Allura. I’ll try to present a lightning talk and host a demo session for Allura at the conference. Also, my work on the importer begins again tomorrow and hopefully it will be done before reaching Spain. Will share updates on this blog. \ No newline at end of file diff --git a/content/blog/2016-11-09-some-journal-publications-require-you-to-put-author.md b/content/blog/2016-11-09-some-journal-publications-require-you-to-put-author.md new file mode 100644 index 0000000..1ea056c --- /dev/null +++ b/content/blog/2016-11-09-some-journal-publications-require-you-to-put-author.md @@ -0,0 +1,28 @@ +--- +title: Some journal publications require you to put author… +author: rhnvrm +type: post +date: 2016-11-09T16:59:35+00:00 +url: blog/2016/11/09/some-journal-publications-require-you-to-put-author/ +categories: + - uncategorized +tags: + - latex +format: status + +--- +Some journal publications require you to put author biography for each author with their pictures. For this I found the _picins _package. To install this package you can run the following commands + +
sudo mkdir /usr/share/texmf/tex/latex/picins
+ +
sudo wget -O /usr/share/texmf/tex/latex/picins/picins.sty http://ctan.imsc.res.in/macros/latex209/contrib/picins/picins.sty http://mirrors.ctan.org/macros/latex209/contrib/picins/picins.sty
+ +
sudo /usr/bin/texconfig rehash
+ +
+ So, then you can use the following latex code for biography of an author: +
+ +
\parpic{\includegraphics[width=1in,clip,keepaspectratio]{figures/photo.eps}}
+\noindent {\bf Lorem Ipsum} dolor sit amet, consectetur adipiscing elit. Vivamus at nulla velit. Aliquam neque purus, porta sit amet sodales non, scelerisque eu nibh. Nulla posuere accumsan dui nec dictum. Aliquam erat volutpat. Aliquam erat volutpat. In tristique, dolor et dignissim eleifend, diam eros sollicitudin odio, at consequat sapien odio nec velit. Aenean vel mi lacinia, viverra lorem et, venenatis velit. Duis fringilla purus nec tortor efficitur vestibulum. Donec vitae viverra diam, scelerisque bibendum magna. Nunc fringilla lobortis pharetra. Sed rhoncus arcu eget porta euismod. Vestibulum scelerisque, enim id condimentum sagittis, magna enim faucibus tortor, non volutpat tortor ipsum nec augue. Duis faucibus molestie dui, gravida vehicula ante porttitor et. Integer hendrerit ligula id magna ornare vestibulum.
+
\ No newline at end of file diff --git a/content/blog/2016-11-12-reached-the-melia-sevilla-spain-tonight-pretty-excited.md b/content/blog/2016-11-12-reached-the-melia-sevilla-spain-tonight-pretty-excited.md new file mode 100644 index 0000000..27f2ac8 --- /dev/null +++ b/content/blog/2016-11-12-reached-the-melia-sevilla-spain-tonight-pretty-excited.md @@ -0,0 +1,18 @@ +--- +title: Reached the Melia Sevilla Spain tonight Pretty excited… +author: rhnvrm +type: post +date: 2016-11-12T21:42:21+00:00 +url: blog/2016/11/12/reached-the-melia-sevilla-spain-tonight-pretty-excited/ +categories: + - uncategorized +tags: + - aceu16 +format: status + +--- +Reached the Melia Sevilla, Spain tonight. Pretty excited about ApacheCon. Am planning on finalizing the presentations about Allura by tomorrow night and discuss them with @brondsem on Monday. + +It was a long trip to Sevilla via Madrid and London with @gauravsaini03, he will be speaking about Apache OFBiz which is a complete enterprise solution. + +Met Dr Paul King(@paulk_asert), who is working on Apache Groovy and has worked on the “Groovy in Action” book by Manning publications. He has 3 back to back talks lined up at ApacheCon on Thursday about Groovy. \ No newline at end of file diff --git a/content/blog/2016-11-13-toured-seville-today-thanks-to-https-www-feelthecitytours.md b/content/blog/2016-11-13-toured-seville-today-thanks-to-https-www-feelthecitytours.md new file mode 100644 index 0000000..1668494 --- /dev/null +++ b/content/blog/2016-11-13-toured-seville-today-thanks-to-https-www-feelthecitytours.md @@ -0,0 +1,18 @@ +--- +title: Toured Seville today thanks to https www feelthecitytours… +author: rhnvrm +type: post +date: 2016-11-13T22:12:21+00:00 +url: blog/2016/11/13/toured-seville-today-thanks-to-https-www-feelthecitytours/ +categories: + - uncategorized +tags: + - aceu16 +format: status + +--- +Toured Seville today thanks to https://www.feelthecitytours.com/en/tours/sevilla/ . They are an amazing company with a great tour of this beautiful city. Got to learn a lot about the city along with a bunch of great stories about the city. One of them was the story of Carmen (http://www.geocities.jp/wakaru_opera/englishcarmen.html) which is a pretty nice story. + +The TAC meeting was pretty nice and was followed by the TAC team dinner at a Tapas restaurant. + +Excited about the first day tomorrow. \ No newline at end of file diff --git a/content/blog/2016-11-14-day-1-apachecon-big-data-seville-2016.md b/content/blog/2016-11-14-day-1-apachecon-big-data-seville-2016.md new file mode 100644 index 0000000..4193fea --- /dev/null +++ b/content/blog/2016-11-14-day-1-apachecon-big-data-seville-2016.md @@ -0,0 +1,96 @@ +--- +title: Day 1 – ApacheCon Big Data, Seville 2016 +author: rhnvrm +type: post +date: 2016-11-14T21:59:52+00:00 +url: blog/2016/11/14/day-1-apachecon-big-data-seville-2016/ +categories: + - apache +tags: + - aceu16 + +--- +It was fun to volunteer for today’s sessions at Apache Big Data 2016. My responsibilites included helping the speakers setup their laptops and introduce them to the audience, keep time and remind them when time was running short, and finally helping out with the Q&A at the end. I also liveblogged the sessions via twitter and interacted with the speakers as most of the sessions were of my choice as the volunteer team had a shared spreadsheet on which we could choose our sessions in a first come first serve manner. + +The day began with the Keynote sessions at 9:30. Rich Bowen started the conference with his opening remarks followed by Stephan Ewen and Alan Gates who gave their talks.
+ +
New photo by Rohan Verma / Google Photos
+ +A small coffee break followed the keynote in which the TAC team met and all us of started to prepare for the breakout sessions that run in parallel in different conference rooms. + +The first session I attended was about Apache Gearpump. It’s an interesting project and is a realtime big data streaming engine. + + + + + +The second session was interesting and I got to learn a lot more about Apache Solr. I learnt about Faceting which was new to me and I feel would be very useful for projects that use Solr. Even Apache Allura might be able to use it somewhere, but for this I will have to think where it can be used. + + + + + +The next session was one which I was very interested in as I had worked on a similar project called [Blip][1]. I talked to the presenter, Thomas Burgess and told him about it as well. Their company, [indoo.rs][2] has works on the same thing of providing indoor positioning services. They have even deployed it in San Francisco Airport. Right now they are researching about the same and trying to find new ways using Big Data analytics to reduce the time it takes to deploy these solutions and wish to create ways to make the process automated. They are also looking into using some seed data points and then extrapolating them using crowdsourcing. Hopefully, I will try to get in touch with them and discuss the research that is going on at our University regarding the same. + + + + + +Next, was a talk by Tim Park from Microsoft. I did not anticipate that this would turn out to be one of my favorite talks of today’s sessions since I had not read much about what was going to be talked about in this talk. It turned out to be great for me as I got to learn a lot and was able to connect the dots. + + + + + +Since, the previous session ended a bit early, I was able to goto the central banquet area where I was able to socilize with a few Apache people like Jean-Frederic Clere and talked about the Bar Camp. Also, talked to some of the speakers and atendees that I had interacted with during the events. + +Afterwards, the last session I attended was about Druid and Apache Hive. It was also pretty good, but I did not have much knowledge about what was being covered. Although, looking at the demonstration I was able to figure out what had been discussed earlier and the benefits. + + + + + +Hoping for a great day again tomorrow. + + [1]: https://github.com/rhnvrm/iot-hackerearth + [2]: http://indoo.rs/ \ No newline at end of file diff --git a/content/blog/2016-11-15-day-2-apachecon-big-data-seville.md b/content/blog/2016-11-15-day-2-apachecon-big-data-seville.md new file mode 100644 index 0000000..5a6abef --- /dev/null +++ b/content/blog/2016-11-15-day-2-apachecon-big-data-seville.md @@ -0,0 +1,99 @@ +--- +title: Day 2 – ApacheCon Big Data, Seville +author: rhnvrm +type: post +date: 2016-11-15T23:37:36+00:00 +url: blog/2016/11/15/day-2-apachecon-big-data-seville/ +categories: + - apache +tags: + - aceu16 + +--- +The second day of ApacheCon BigData was also successful and amazing. It was a long day that started with the Keynotes by Mayank Bansal from Uber who explained Uber’s big data stack and how they scaled up. + +The next keynote was by Sean Owen from Cloudera who explained how Apache is more than just another Github where people just dump their code. It’s a place for building the community. It was also nice to hear his shoutout to Apache Allura which he talked about to explain the diversity and the reach of the projects. He said how we usually just think of ASF as a place for the HTTPd and Big Data projects but it’s more than that and how there are projects as big as these projects like Apache Allura. + + + + + +Then, I attended the session on Distributed and Native Machine Learning using Apache Mahout by Suneel Marthi from Redhat. The talk was Math Intensive and demonstrated how easy it is for Data Scientists to forget about the implementation of the stack below and just write the code for their Data projects in their favorite language. He demonstrated how easy it is with Apache Mahout-Samsara to do distributed Linear Algebra with an example of the EigenFaces classification problem. + + + + + +Another interesting talk was given by Clemens Valiente from the Trivago Development team who explained his company’s big data stack and how they moved from simple Java platform to the Big Data stack that reduced their query time from 5 seconds to less than a second. + + + + + +Then I spent some time with Melissa and Gaurav at the Apache Software Foundation Booth at the Showcase Foyer. + + + + + +Julien Nioche gave a talk on Low Latency Web Crawling using Apache Storm. + + + + + +Julien Herzen presented Meerkat, which is a system built at Swisscom to do real-time anomaly detection on time series. Meerkat uses a combination of machine learning and big data technologies in order to trigger alerts in case of problems in Swisscom network. + + + + + +  \ No newline at end of file diff --git a/content/blog/2016-11-16-day-3-apachecon-barcamp-and-apachecon.md b/content/blog/2016-11-16-day-3-apachecon-barcamp-and-apachecon.md new file mode 100644 index 0000000..3bf1f1e --- /dev/null +++ b/content/blog/2016-11-16-day-3-apachecon-barcamp-and-apachecon.md @@ -0,0 +1,105 @@ +--- +title: Day 3 – ApacheCon Barcamp and ApacheCon +author: rhnvrm +type: post +date: 2016-11-16T23:05:05+00:00 +url: blog/2016/11/16/day-3-apachecon-barcamp-and-apachecon/ +categories: + - apache +tags: + - aceu16 + +--- +The morning began with me waking up a little later. The previous night, we had the Attendee Reception. The BarCamp began around 10 AM. A barcamp is an ‘unconference’ with no set schedule, facilitated by those involved in various Apache projects. It was organized by Jean Fredric Clere and Sharon Foga. + +You can learn more about the BarCamp at: + +https://wiki.apache.org/apachecon/BarCampApacheSeville + +Since, most people don’t know what a barcamp is and might be confused I’d suggest reading up about it on https://en.wikipedia.org/wiki/BarCamp + + + + + + + + + +The discussions were were nice and insightful, from all the attendees. I gave a presentation on Apache Allura and also a demonstration on what all can be done using Allura. + +Afterwards, we had the sessions of ApacheCon. I attended Jim Jagielski’s talk on Inner Sourcing. + + + + + +Here are his slides. I would recommend them to anyone who is trying to build Open Communities. + +After a small break, it was time for the day’s keynotes and ApacheCon to officially begin. Rich Bowen gave the Opening Remarks and welcomed all the attendees and the speakers to the next set of days of ApacheCon. Jim Jagielski gave the State of the Feather speech. I was amazed to learn so much more about the Apache Software Foundation and it’s resolve to put Community First before Code. + + + + + +This was the same day as Microsoft joined the Linux Foundation as a Platinum member which was also an organizer for ApacheCon and ApacheCon BigData 2016. + + + + + +Then we had the Lightning Talks. They were amazing, one of the most memorable lightning talk was given by someone who had made a drinking game out of code reviews. Another memorable one was given by Shane Curcuru about how he got involved with Apache and how others should do the same. + + + + + +  \ No newline at end of file diff --git a/content/blog/2016-11-17-day-4-apachecon-and-the-apache-way.md b/content/blog/2016-11-17-day-4-apachecon-and-the-apache-way.md new file mode 100644 index 0000000..dda6c1c --- /dev/null +++ b/content/blog/2016-11-17-day-4-apachecon-and-the-apache-way.md @@ -0,0 +1,103 @@ +--- +title: Day 4 – ApacheCon and The Apache Way +author: rhnvrm +type: post +date: 2016-11-17T23:28:01+00:00 +url: blog/2016/11/17/day-4-apachecon-and-the-apache-way/ +categories: + - apache +tags: + - aceu16 + +--- +On day 4, I attended the Apache Way track as I felt that I should get to know more about the ASF and how Apache works. I got to learn a lot and feel that this has paved my way to further get involved with Apache projects. The first session was a panel discussion having panel members from the ASF. It was hosted by Nick Burch and the panelists were members of the ASF. + + + + + +> The “Apache Way” is the process by which Apache Software Foundation projects are managed. It has evolved over many years and has produced over 100 highly successful open source projects. It generally works well! But not always.. +> +> In this session, we’ll follow on from the theory, and look more on the practice of how it works. We’ll look more at cases when it has worked well! And when it has had problems. We’ll see more of the boundaries, the things that can be changed, and those that are fixed firm rules. We’ll see how businesses can get involved, and where project independence means they need to step back. Licensing, Trademarks, Decisions, Marketing, Infrastructure and more. + +Then was the session by Wen Ming who talked about how they built a Tech Community in China using the Apache Way and discussed all the problems they faced while doing so. It was nice to hear how different places in the world face the problem of accepting that Open Source is as important as normal work. Most asian countries face this problem that employers expect their employees to work 24/7 on the work done at the company and work done beyond that is considered to be somewhat illegal. + + + + + +Then I attended Apache 2.4 Reverse Proxy talk by Jim Jagielski. He talked about the new and unique features of Apache httpd’s reverse proxy. + + + + + +After that there was a talk on how a company can capitalize and successfully profit from Apache Products and Brands by Shane Curcuru + + + + + +Afterwards, there was a lunch break and following was a talk by Bertrand Delacretaz in which he posed the question about whether Software Quality is a Cultural Thing or not. + + + + + +Then, we had the Attendee reception for ApacheCon. It was nice to interact with the attendees. + +It was followed by the PGP key signing event. It was nice to get to meet many people and get verified by them. + + + + + +  \ No newline at end of file diff --git a/content/blog/2016-11-18-day-5-the-final-day-of-apachecon.md b/content/blog/2016-11-18-day-5-the-final-day-of-apachecon.md new file mode 100644 index 0000000..99261fd --- /dev/null +++ b/content/blog/2016-11-18-day-5-the-final-day-of-apachecon.md @@ -0,0 +1,113 @@ +--- +title: Day 5 – The final day of ApacheCon +author: rhnvrm +type: post +date: 2016-11-18T23:52:10+00:00 +url: blog/2016/11/18/day-5-the-final-day-of-apachecon/ +categories: + - apache +tags: + - aceu16 + +--- +The morning began with keynotes from Sebastian Blanc and Bertrand Delacretaz. After that I attended Jean Fredric Clere’s talk on HTTP/2 and SSL/TLS. He also demonstrated the new protocol and the extensions. + + + + + +Next, got to learn about security lessons from the Deserialization vulnerability in the Java Apache Commons Collections library and how prevalant they are by Tim Jarret. + + + + + +After that was a talk on “If you build it, They won’t come” by Ruth Suehle. She talked about how UI/UX and documentation can make or break open source projects. She presented various examples of small and large open source projects. She also analyzed [Apache Infra’s new website][1] that will be coming up soon. + + + + + +Next talk was from Rod Cope who talked about the need to build Offline First apps and presented some of the features of PouchDB/CouchDB. I got to learn about the new MongoDB and PouchDB and will try using that for my next projects. + + + + + +The final talk was by fellow TACer Pedro Giffuni on how his experience with Random Numbers. One specific cool thing I took from his presentation were XORshift randomizers. + + + + + +And finally, after this we had the TACers meet hosted by Mellissa and Cristofer Dutz where we talked about our experiences at the event. + +In the end, I would like to thank the Apache Software Foundation, the Linux Foundation and the Apache Community for having me at the conference. Hope to keep connected with everyone I met at the conference and get more involved with the ASF. + + + + + + + + + +  + + [1]: https://infra-test.apache.org/ \ No newline at end of file diff --git a/content/blog/2016-11-23-getting-ready-for-updating-my-system-to-fedora.md b/content/blog/2016-11-23-getting-ready-for-updating-my-system-to-fedora.md new file mode 100644 index 0000000..0aada59 --- /dev/null +++ b/content/blog/2016-11-23-getting-ready-for-updating-my-system-to-fedora.md @@ -0,0 +1,12 @@ +--- +title: Getting ready for updating my system to Fedora… +author: rhnvrm +type: post +date: 2016-11-23T18:59:45+00:00 +url: blog/2016/11/23/getting-ready-for-updating-my-system-to-fedora/ +categories: + - uncategorized +format: status + +--- +Getting ready for updating my system to Fedora 25. Updating and backing up Fedora 24. Side by side, studying for my final exams and trying to cope with submission deadlines. \ No newline at end of file diff --git a/content/blog/2016-11-25-i-recently-corrupted-my-zsh-history-and-was.md b/content/blog/2016-11-25-i-recently-corrupted-my-zsh-history-and-was.md new file mode 100644 index 0000000..f094b0a --- /dev/null +++ b/content/blog/2016-11-25-i-recently-corrupted-my-zsh-history-and-was.md @@ -0,0 +1,26 @@ +--- +title: I recently corrupted my zsh history and was… +author: rhnvrm +type: post +date: 2016-11-25T18:35:39+00:00 +url: blog/2016/11/25/i-recently-corrupted-my-zsh-history-and-was/ +categories: + - uncategorized +tags: + - zsh +format: status + +--- +I recently corrupted my zsh history and was facing this error. + +After a reboot, I started seeing a message when loading the shell: + +zsh: corrupt history file /home/myusername/.zsh_history + +I fixed it using: + +mv .zsh\_history .zsh\_history_bad + +strings .zsh\_history\_bad > .zsh_history + +fc -R .zsh_history \ No newline at end of file diff --git a/content/blog/2016-11-29-octoshark-hackathon.md b/content/blog/2016-11-29-octoshark-hackathon.md new file mode 100644 index 0000000..12a9c60 --- /dev/null +++ b/content/blog/2016-11-29-octoshark-hackathon.md @@ -0,0 +1,43 @@ +--- +title: OctoShark Browser Extension – DigitalOcean Cloud Hack Delhi Winner 2016 +author: rhnvrm +type: post +date: 2016-11-29T01:03:43+00:00 +url: blog/2016/11/29/octoshark-hackathon/ +categories: + - projects +tags: + - google-chrome + - hackathon + - js + - python + +--- +This product was built during the DigitalOcean Cloud Hack 2016 at 91springboard, Okhla New Delhi. These days, every cloud developer is using Docker. Docker has become the de-facto way for developers and system administrators to create lightweight images and deploy to cloud. A quick search on github returned more than 300,000 public projects with Dockerfiles. The idea behind OctoShark is to simplify the workflow of deploying and testing cloud projects. OctoShark aims to provide a one click solution to deploy any Docker Project directly to a new DigitalOcean Droplet. The OctoShark button would be visible on such github projects and it would allow users to spin up a server for that project in a jiffy. No developer now needs to think twice to test a project! Since OctoShark is a browser extension, it also provides real-time information about your existing droplets and enables you to perform actions on them. The most popular extension available online is deprecated because it was built to work with DO’s API V1 and not API V2. We believe with OctoShark, developers will be able to click and run the projects and not worry about anything else! We placed first in the Cloud Track in this hackathon.
+ +
Team L to R – Karan Sharma, Rohan Verma, Manvendra Singh, Shubhang Arora, Vijay Nandwani
+ +### [OctoShark Extension][1] + +Our extension is built using the Kango Cross-Browser Extension Platform that connects GitHub with the DigitalOcean Platform. + +It provides the user the ability to deploy projects having Dockerfile to a new Digital Ocean droplet in a single click and also see the status and manage the droplets using the extension. + +### [OctoShark Server][2] + +The backend server of OctoShark on receiving a `GET` request on the `/create` endpoint creates a ubuntu docker’ droplet, clones the project into the droplet and builds the project using the Dockerfile. + +### Demo Video + + + +### Presentation Video + + + +### Future Work + +Currently, we are planning on launching the extension on the Chrome Extension Store and Firefox and deploy the server on the Hasura platform using the credits that we won! + + [1]: https://github.com/CapsLockHacks/OctoShark-Extension + [2]: https://github.com/CapsLockHacks/do-server \ No newline at end of file diff --git a/content/blog/2016-12-12-sorting-out-my-todo-list-for-the-next.md b/content/blog/2016-12-12-sorting-out-my-todo-list-for-the-next.md new file mode 100644 index 0000000..ba1f3aa --- /dev/null +++ b/content/blog/2016-12-12-sorting-out-my-todo-list-for-the-next.md @@ -0,0 +1,14 @@ +--- +title: Sorting out my todo list for the next… +author: rhnvrm +type: post +date: 2016-12-12T20:19:26+00:00 +url: blog/2016/12/12/sorting-out-my-todo-list-for-the-next/ +categories: + - uncategorized +tags: + - misc +format: status + +--- +Sorting out my todo list for the next 3 weeks. \ No newline at end of file diff --git a/content/blog/2016-12-13-understanding-the-undertones-of-political-thought-within-the-politically-agnostic-foss-movement.md b/content/blog/2016-12-13-understanding-the-undertones-of-political-thought-within-the-politically-agnostic-foss-movement.md new file mode 100644 index 0000000..830e567 --- /dev/null +++ b/content/blog/2016-12-13-understanding-the-undertones-of-political-thought-within-the-politically-agnostic-foss-movement.md @@ -0,0 +1,87 @@ +--- +title: Understanding the Undertones of Political Thought within the Politically Agnostic FOSS Movement +author: rhnvrm +type: post +date: 2016-12-13T00:41:59+00:00 +url: blog/2016/12/13/understanding-the-undertones-of-political-thought-within-the-politically-agnostic-foss-movement/ +categories: + - projects +tags: + - foss + - gnu + - linux + - misc + - sociology + +--- +## **Introduction** + +The Free and Open Source Software (FOSS) movement, which is now seen as an integral part of the technology sector, is now making its impact outside this domain in various dimensions. It has given rise to the three “Open” pillars – Open Source, Open Standards and Open Content. Ideas formulated during the rise of these new FOSS communities have been able to raise various questions about Intellectual Property, Information Production and other newly formulated concepts. In this paper, we will first discuss the history of FOSS and the creation of the two camps of the FOSS movement. It is important here to remind the reader that the word “Free” stands for free as in “Freedom” and not the economic freebie, but also to note that it has been carefully chosen to highlight that as well. We will analyze this bipartisan community and the implications of their ideology about freedom. Going ahead, we will discuss the copyleft licenses and it’s impact on intellectual property followed by the emerging future of the new ideologies. Although, FOSS developers and community members are agnostic about politics the aim of this paper is to bring out the underlying political thought behind this recent modern phenomenon. + +## History of FOSS + +The concept of sharing technological information predates computers although this technology along with the internet have enabled sharing of information exponentially. Before the 1960s, most of the source code that was written was academic and usually available under the public domain. But with the advent of commercial software, came licenses for using and distributing software. In 1983, Richard Stallman started work on the GNU project to write a complete operating system free from any constraints on the usage of it’s source code. In 1985, Stallman published the GNU Manifesto and in 1989 he released the first version of the GNU General Public Licence (GPL) and it was the beginning of the Free Software Movement which would culminate with the creation of the Free Software Foundation (FSF). We should note here that the GNU GPL was a Copyleft license. It was a novel use of the existing copyright law that guaranteed the GPL licensed works to remain freely available even under derivative works and therefore saw extensive use by the community. As an aside, it is important to mention that this was one of the inspirations for the share-alike license provided by the Creative Commons which we will discuss ahead. There seems to be two major highlights for our discussion in context of this paper from Stallman’s work. First, being his definition of the “Free” in FOSS to be Free as in Freedom. The freedom he talks about is closer to the positive liberty – which according to Isaiah Berlin would be the possibility of acting and not the negative liberty. This positive liberty is attributed to the collective community behind the projects and the members of the community. Second, is his argument about the benefits of such projects. In essence, he breaks these benefits into the benefits to the contributors and the benefits to the community as a whole. His work has continued on to become one of the two major philosophies in the FOSS world. + +The early 90s saw the rise of the permissive open source licenses, like the Apache License, that were commercially aligned. Permissive licenses allowed users to use these projects and modify them and earn profit without necessarily having to be bounded by the restrictions imposed by the GPL license. In 1999, Eric S Raymond published his essay about the two different software models, “The Cathedral and the Bazaar”. He describes the Cathedral model, in which source is available with each software release but code developed between the releases is restricted to an exclusive group of software developers whereas in the Bazaar model, code was being developed over the internet in view of the public. The bazaar model was only possible with the rise of the internet and now we see the emergence of a new human dynamic that is Peer to Peer which we discuss below. + +In 1997, Netscape Navigator’s release of its source code, prompted Raymond and others to rethink about FSF’s social activism since it was not appealing to corporate companies and wanted to rebrand to highlight the business potential of sharing of source code. They adopted the label “open source” and the Open Source Initiative (OSI) was formed thereafter. + +## The Bipartisan Community + +Two major philosophies exist today in the FOSS world today. Both are lead by the two major camps, the FSF camp and the OSI camp. According to the FSF, free software is meant to protect four user freedoms. They term programs that don’t give these freedoms to by “non-free”. Their argument here is that non-free programs control the users and this makes the program an instrument of unjust power. It is clearly evident how it shares a common vocabulary with Marx, when he talks about class struggle in the Communist Manifesto. Comparing the social groups identified by Marx, the Labour and the Capital, are comparable to the Users and the Developers. To give an example, computer programs developed by hobbyists in the 90’s grew into serious competitors to commercial software being produced by large companies. One such community project was the GNU/Linux operating system which is now one of the only competitors to the Microsoft Windows operating system. The question that the FSF’s philosophy was in a position to answer was what was whether the Windows ecosystem was ethical or not in its treatment of its users. + +The FSF’s list of four freedoms are listed below: + +●    The freedom to run the program as you wish, for any purpose (freedom 0). + +●    The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this. + +●    The freedom to redistribute copies so you can help your neighbor (freedom 2). + +●    The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.  – (FOSS A General Introduction/Intellectual Property Rights and Licensing – Wikibooks) + +It is hard not to notice the similarity between how this philosophy also calls for a certain set of negative freedoms in Isaiah Berlin’s terminology, just like Rawls lists out the primary goods for his first principle. Similar to Rawls use of arguments moral in nature to justify his argument, this philosophy is also justified on the basis of free software’s commitment to prevent limiting the freedom of others. The FSF’s main contention is the ethical use and creation of software, just like Rawls talks about the ethics of justice. + +Another undertone that can be brought about by classifying the user as the labourer in Marxist terms allows us to understand is how free software is in a position to reduce the alienation between the users and the developers. Technology that is designed as a “black box” makes the user to be left without any influence over the functions that the machinery imposes. + +OSI’s philosophy is a bit different from the FSF. They say, “When programmers can read, redistribute, and modify the source code for a piece of software, the software evolves. People improve it, people adapt it, people fix bugs. And this can happen at a speed that, if one is used to the slow pace of conventional software development, seems astonishing.” OSI is more focused on the technical values that make software powerful, reliable and business friendly. It bypasses FSF’s moral views on the subject and focuses on the practical advantages offered by FOSS’s distributed development model. Just like how Robert Nozick critiqued Rawls work, a similar argument like Nozick’s critique of pattern based principles can be extended to critique the FSF moral stand by the OSI. + +Even though both FSF and OSI differ immensely in their fundamental philosophy, they both share the same space and cooperate on their common goal. Richard Stallman has himself said that they both are like two political parties in the same community. + +## Analyzing Copyleft and Intellectual Property + +One of the biggest achievements of the FOSS movement is the Copyleft license. The purpose of the license as discussed above was to protect the four essential freedoms. Putting Copyleft in layman’s terms, it is a rule that when a program is redistributed, it must not add restrictions that deny others the four central freedoms. It has been successful in rupturing the naturalized form of intellectual property by inverting its singular by using intellectual property itself. This is similar to Marx’s inversion of Hegelian idealism, which retained Hegel’s dialectical method to repose history not as an expression of the “Absolute Idea” but as humanity’s collective creation through labor. By utilizing the existing copyright law, copyleft has been in a position to tell us that we are not mere subjects of an unchangeable law but in turn we can actually create and modify the laws to serve other ends. FOSS licenses can be understood as constitutions that serve to credit the researchers, protect them from liability, and then let people do what they want with the product. + +Nowadays, a free software user and developer is confronted with a choice of licenses and moral codes. This choice, although, requires prioritizing one group’s freedoms over another. This ethical dilemma can be resolved by favoring the copyleft licenses as they have a better facilitation of freedoms, a broader appeal to the community, and their commitment to an ethical vision for the future. Hobbes is known to have famously defined freedom as the absence of restriction. Political thought from Aristotle to Heidegger has been at odds to differentiate freedom from license. Isaiah Berlin’s characterization of positive freedom as an alternative and negative freedom as the absence of restriction is again valuable here. There is often a critique of positive freedoms called the “paradox of economic freedom” where unfettered freedoms in the form of removing all restrictions on the rich would result in the total exploitation of the poor, and thereby their subsequent loss of economic freedoms. Similarly, non-copyleft licenses, although operating to grant protection, inevitably fail to provide any means against the exploitation possible. + +## Peer Production and the Gift Economy + +Peer to Peer (P2P) is a newly emerging human dynamic which is giving rise to a third mode of production, governance and property. It is poised to have deeper impacts, even more than the impact of Marx’s identification of the manufacturing plants of Manchester as the blueprint for the new capitalist society. To understand what P2P is, we must first understand P2P processes. These processes produce use-value through the free cooperation of producers who have access to distributed capital and it is termed as the P2P production mode. These processes are governed by the producers themselves and make the use-value freely accessible universally. These processes occur in distributed networks where there is decentralization like the internet. P2P is often incorrectly described as a Gift Economy. This is because it is not based on equality matching but on reciprocity. Taking inspiration from Marx’s slogan “From each according to his ability, to each according to his needs” P2P does not involve obligatory reciprocity. Each contributes according to his capacities and willingness and each takes according to one’s needs. In the purest form of Peer Production, producers do not get any payment. P2P processes and P2P as a model itself might be important to read and understand and question as it might slowly but eventually be a factor for future economies and social policies. Take into account the emerging welfare states which might be able to sustain such individuals who partake in P2P processes since the current form of the economy cannot. + +## Creative Commons + +The commons movement, another much recent phenomenon, is centered on the idea of creating public goods to reinvigorate democratic principles. FOSS has enabled like-minded projects in art, law, and science to release all their archives under a Creative Commons license. Commons are universally available and regulated by global cyber collectives. A license called the “Share-Alike” licenses provides a similar to the Copyleft licenses that allows redistribution and derivative works only if they are also released under a commons license. This commons phenomenon is in contrast to the Communal lands of the past which were localized and regulated by communities usually limited by location. Creative Commons have therefore given an example of the spreading of the ideology generated by the FOSS movement might eventually lead to a different future. + +## Summary + +The Open Source Initiative’s efforts to popularize free software by divorcing it from politics seek to increase greater acceptance among corporate developers has although increased the exposure of FOSS to the world. Although, with this divorce, the underlying and foundational political and ethical message have been lost into the underground. Therefore, it is important to not forget these underlying message of liberty and revolution created by the origins of the FOSS movement. + +## Works Cited + + * Benkler, Yochai, and Helen Nissenbaum. “Commons-based Peer Production and Virtue.” Journal of Political Philosophy 14.4 (2006): 394-419. Print. + * Berlin, Isaiah. “Two Concepts of Liberty.” Liberty (2002): 166-217. Print. + * Chopra, Samir, and Scott Dexter. Decoding Liberation: The Promise of Free and Open Source Software. New York: Routledge, 2008. Print. + * Cohen, G. A. Karl Marx’s Theory of History: A Defence. Princeton: Princeton UP, 1978. Print. + * Coleman, Gabriella. “The Political Agnosticism of Free and Open Source Software and the Inadvertent Politics of Contrast.” Anthropological Quarterly 77.3 (2004): 507-19. Print. + * “Copyleft vs. Copyright: A Marxist Critique | Söderberg | First Monday.” Copyleft vs. Copyright: A Marxist Critique | Söderberg | First Monday. Web. 11 Dec. 2016. + * “FOSS A General Introduction/Intellectual Property Rights and Licensing.” FOSS A General Introduction/Intellectual Property Rights and Licensing – Wikibooks, Open Books for an Open World. Web. 11 Dec. 2016. + * “FOSS A General Introduction/Introduction.” FOSS A General Introduction/Introduction – Wikibooks, Open Books for an Open World. Web. 11 Dec. 2016. + * “The Open Source Initiative” About | Open Source Initiative. Web. 11 Dec. 2016. + * Nozick, Robert. Anarchy, State, and Utopia. New York: Basic, 1974. Print. + * Rawls, John. A Theory of Justice. Cambridge, MA: Belknap of Harvard UP, 1971. Print. + * Weber, Steve. The Success of Open Source. Cambridge, MA: Harvard UP, 2004. Print. + * “Gnu.org.” The GNU Operating System and the Free Software Movement. Web. 11 Dec. 2016. + +_This was a term paper I submitted for a course titled “Intro to Political Thought” at SNU under [Prof. Shekhar Singh][1]._ + + [1]: http://snu.edu.in/humanitiessocialsciences/shekhar_singh_profile.aspx \ No newline at end of file diff --git a/content/blog/2016-12-14-at-last-i-am-now-on-fedora-25.md b/content/blog/2016-12-14-at-last-i-am-now-on-fedora-25.md new file mode 100644 index 0000000..36a67eb --- /dev/null +++ b/content/blog/2016-12-14-at-last-i-am-now-on-fedora-25.md @@ -0,0 +1,19 @@ +--- +title: At last I am now on Fedora 25… +author: rhnvrm +type: post +date: 2016-12-14T14:10:25+00:00 +url: blog/2016/12/14/at-last-i-am-now-on-fedora-25/ +categories: + - uncategorized +tags: + - linux + - misc +format: status + +--- +At last, I am now on Fedora 25. It’s great to again be able to use VLC and TexStudio without having to do use any workarounds! Still need to test the Optimus improvements but can’t seem to be able to get Nvidia module to start. bbswitch is loaded. Need some time to figure this one out. I guess will have to try Dota 2 7.00 on WinDoze. + +**Edit: **It now works perfectly. I’m happy. + +Wow, wayland is seriously way smoother than X. One must-have gnome extension now is the “Gnome Shell Extension Reloader” since now you can’t simply reload X with \`ctrl+F2 r\` like in the old days. \ No newline at end of file diff --git a/content/blog/2016-12-19-if-you-are-using-os-rename-src-dest.md b/content/blog/2016-12-19-if-you-are-using-os-rename-src-dest.md new file mode 100644 index 0000000..3db5f14 --- /dev/null +++ b/content/blog/2016-12-19-if-you-are-using-os-rename-src-dest.md @@ -0,0 +1,14 @@ +--- +title: If you are using os rename src dest… +author: rhnvrm +type: post +date: 2016-12-19T19:04:05+00:00 +url: blog/2016/12/19/if-you-are-using-os-rename-src-dest/ +categories: + - uncategorized +tags: + - python +format: status + +--- +If you are using os.rename(src,dest) outside the current working directory, you can’t simply use os.rename(filename, “output.mp3”) since it will move the file to the current working directory. You should rather, path.dirname to get the file’s directory and then rename the file. For example you can use \`os.rename(file\_name, os.path.dirname(file\_name) + ‘/{song\_title}.mp3’.format(song\_title=song_title))\` \ No newline at end of file diff --git a/content/blog/2017-01-02-.md b/content/blog/2017-01-02-.md new file mode 100644 index 0000000..330da05 --- /dev/null +++ b/content/blog/2017-01-02-.md @@ -0,0 +1,12 @@ +--- +title: Twenty Sixteen +author: rhnvrm +type: post +date: -001-11-30T00:00:00+00:00 +draft: true +url: blog/?p=126 +categories: + - uncategorized +format: status + +--- diff --git a/content/blog/2017-01-06-.md b/content/blog/2017-01-06-.md new file mode 100644 index 0000000..a84e49c --- /dev/null +++ b/content/blog/2017-01-06-.md @@ -0,0 +1,12 @@ +--- +title: Postmortem Week 1 – 2017 +author: rhnvrm +type: post +date: -001-11-30T00:00:00+00:00 +draft: true +url: blog/?p=128 +categories: + - uncategorized +format: status + +--- diff --git a/content/blog/2017-01-07-.md b/content/blog/2017-01-07-.md new file mode 100644 index 0000000..930bfc4 --- /dev/null +++ b/content/blog/2017-01-07-.md @@ -0,0 +1,12 @@ +--- +title: Tower of Hanoi +author: rhnvrm +type: post +date: -001-11-30T00:00:00+00:00 +draft: true +url: blog/?p=130 +categories: + - uncategorized +format: status + +--- diff --git a/content/blog/2017-01-07-how-to-sign-pgp-keys-using-gpg.md b/content/blog/2017-01-07-how-to-sign-pgp-keys-using-gpg.md new file mode 100644 index 0000000..b3d2272 --- /dev/null +++ b/content/blog/2017-01-07-how-to-sign-pgp-keys-using-gpg.md @@ -0,0 +1,40 @@ +--- +title: How to Sign PGP Keys using GPG +author: rhnvrm +type: post +date: 2017-01-07T13:49:07+00:00 +url: blog/2017/01/07/how-to-sign-pgp-keys-using-gpg/ +categories: + - apache + - foss +tags: + - aceu16 + - foss + - linux + - misc + +--- +
[xkcd #364: Responsible Behavior][1]
xkcd #364: Responsible Behavior
+ +I participated in ApacheCon EU 2016’s PGP Keysigning Party recently. Being a newbie about PGP keysigning, I made the mistake of not sending the keys back to the key server after signing as I was using a GUI tool called Seahorse. So today, after realizing this from searching my key on MIT’s PGP keyserver, I decided to do it again and send the keys this time using GnuPG. It is very easy to use GnuPG which is Gnu’s PGP implementation and it is well documented. I followed [this][2] article and am providing a list of simple commands below for those who already have setup GnuPG. Also, please not that you should not sign someone’s key until you verify someone. + +Get the key + +`$ gpg --keyserver pgp.mit.edu --recv-keys ` + +Check the fingerprint + +`$ gpg --fingerprint` + +Sign the key + +`$ gpg --sign-key` + +Upload the key + +`$ gpg --keyserver pgp.mit.edu --send-key` + +  + + [1]: https://xkcd.com/364/ + [2]: http://linuxreviews.org/howtos/gnupg/signingparty/#ss3.8 \ No newline at end of file diff --git a/content/blog/2017-01-10-notes-on-regex.md b/content/blog/2017-01-10-notes-on-regex.md new file mode 100644 index 0000000..46c1bd4 --- /dev/null +++ b/content/blog/2017-01-10-notes-on-regex.md @@ -0,0 +1,71 @@ +--- +title: Notes on Regex +author: rhnvrm +type: post +date: 2017-01-10T01:06:48+00:00 +url: blog/2017/01/10/notes-on-regex/ +categories: + - notes +tags: + - notes + - python + - regex + +--- +I’m going to use python. Regex can be used by using the `re` library. You should not refer to this post as these are just notes, it would be better to follow the actual documentation of the [library][1]. + +To use regex, which uses backslashes `\` we must use raw python strings like `r"\n".` + +`.` matches anything but a newline + +`\d` matches `0-9` while `\D` matches anything but digits. Similarly, `\w` matches word chars. Usually, capital letters are complement of these sets. + +`\s` matches whitespace characters like return, newline, tab etc. + +`\w{x}` would match word chars x times. + +`^` matches start and `$` matches end. + +This can be used for exact match. + +`[]` matches a set. + +Important point to note here would be to match `.` inside set, we should not use `\.` since slash will also be matched here, because special characters lose their special meaning here but character classes don’t like `\w`. + +Inside, `^` means negated character set. + +There are also ranges like, a-z, A-Z, 0-9 that can be used in the set. + +`\{x,y} `matches repetitions between x and y inclusive.` w{3,5}` : It will match the character w 3,4 or 5 times. Leaving y means atleast x repetitions. + +`\d*` will match digits 0 or more times. + +`w+` will match w one or more times. + +`?` match zero or one time. + +`(?:...)` is a non capturing group, useful when you only need to check if it is there or not. + +`()` is capturing, can be used with `\1` etc eg. `(\d)\1`: It can match `00`, `11`, `22`, `33`, `44`, `55`, `66`, `77`, `88` or `99`. This is called backreferencing. + +Backreferencing can be used for conditionally checking `r"^\d{2}(-?)\d{2}\1\d{2}\1\d{2}$"` + +`\b` means check if it is a word boundary which is first char of string, between word and not word char, or last char in string. note: don’t use `^$` with word boundary. + +`(Bob|Kevin|Stuart)` will match either `Bob` or `Kevin` or `Stuart` + +`r1(?=r2)` Positive lookahead checks if r1 is immediately followed by r2 + +`r1(?!r2)` Negative lookahead checks if r1 is _not_ immediately followed by r2 + +`(?<=r2)r1` Positive lookbehind + +`(?` will match `b`. To only match `` use `<.*?>` + +Detect HTML links and content: `r'([\w ,./]*)(?=][1] + +The + + [1]: https://chrome.google.com/webstore/detail/snudatalimit/mfjinloagcpmfacpjnlabcflnkbajidd \ No newline at end of file diff --git a/content/blog/2017-01-12-checking-if-a-number-is-prime-using-regex.md b/content/blog/2017-01-12-checking-if-a-number-is-prime-using-regex.md new file mode 100644 index 0000000..a2a9875 --- /dev/null +++ b/content/blog/2017-01-12-checking-if-a-number-is-prime-using-regex.md @@ -0,0 +1,22 @@ +--- +title: Checking if a number is prime using Regex +author: rhnvrm +type: post +date: 2017-01-12T11:17:48+00:00 +url: blog/2017/01/12/checking-if-a-number-is-prime-using-regex/ +categories: + - notes +tags: + - python + - regex + +--- +
def is_prime(n):
+    return not re.match(r'^.?$|^(..+?)\1+$', '1'*n)
+
+ +This works by first converting the number to unary, i.e. 5 will be ‘11111’ and 3 will be ‘111’ and so on. First, it tries to match 0 or 1 in the LHS and then uses backreferences to try and match multiples of 2, 3, 4 and so on until a match is found or string length is exceeded. + +For a deeper analysis please read: https://iluxonchik.github.io/regular-expression-check-if-number-is-prime/ + +  \ No newline at end of file diff --git a/content/blog/2017-01-25-today-my-phone-was-acting-strange-as-it.md b/content/blog/2017-01-25-today-my-phone-was-acting-strange-as-it.md new file mode 100644 index 0000000..6dd0eeb --- /dev/null +++ b/content/blog/2017-01-25-today-my-phone-was-acting-strange-as-it.md @@ -0,0 +1,16 @@ +--- +title: Today my phone was acting strange as it… +author: rhnvrm +type: post +date: 2017-01-25T19:32:40+00:00 +url: blog/2017/01/25/today-my-phone-was-acting-strange-as-it/ +categories: + - misc +tags: + - android +format: status + +--- +Today my phone was acting strange, as it immediately crashed after opening the notification drawer. I was baffled with why this was happening as my phone was working perfectly fine until yesterday. Finally, I had no option but to attempt to see the logs using `adb shell logcat` and try to figure out what was going on. There was a peculiar error message relating to starting an event a `8:00 AM` and I was completely unable to figure out what was causing it. Finally, I read the logs one line at a time and found that it was saying that there was an error with SQLite trying something with the stock clock app which has alarms. This was probably because yesterday night I had not charged my phone and it had died at around 7 or 8 am I guess and there was some error that occured then causing the phone to report thousands of errors, taking all the memory and thereby crashing the phone as soon as it was unlocked and the clock widget on my home screen updated or I tried to open the notification drawer. + +  \ No newline at end of file diff --git a/content/blog/2017-02-04-i-used-to-use-the-l-flag.md b/content/blog/2017-02-04-i-used-to-use-the-l-flag.md new file mode 100644 index 0000000..bac0d19 --- /dev/null +++ b/content/blog/2017-02-04-i-used-to-use-the-l-flag.md @@ -0,0 +1,17 @@ +--- +title: I used to use the ` L` flag… +author: rhnvrm +type: post +date: 2017-02-04T18:21:25+00:00 +url: blog/2017/02/04/i-used-to-use-the-l-flag/ +categories: + - uncategorized +tags: + - foss + - linux +format: status + +--- +I used to use the \`-L\` flag in SSH but today I was going through the man page and saw the \`-D\` flag. It can be used to make a SOCKS5 proxy easily. For eg. \`ssh -f -N -D 8080 xyz@13.232.63.7\` + +Also, a big thanks to EliteBNC.org for giving a free ZNC node. Feels great to be back on IRC after so long. \ No newline at end of file diff --git a/content/blog/2017-02-05-elitebnc.md b/content/blog/2017-02-05-elitebnc.md new file mode 100644 index 0000000..1a0f029 --- /dev/null +++ b/content/blog/2017-02-05-elitebnc.md @@ -0,0 +1,22 @@ +--- +title: You can get a free BNC account on EliteBNC… +author: rhnvrm +type: post +date: 2017-02-05T10:17:34+00:00 +url: blog/2017/02/05/elitebnc/ +categories: + - foss + - tutorials +tags: + - foss + - irc + - tutorial +format: status + +--- +You can get a free [BNC][1] account on [EliteBNC][2]. It runs [ZNC][3] which you can run yourself if you have a spare VPS. All you need to do is login on [FreeNode][4] (you can use their webchat if you don’t have a client handy) and join #EliteBNC channel and issue the following command command: `!request freenode ` and you will get the settings in your email if your request is approved. + + [1]: https://en.wikipedia.org/wiki/BNC_(software) + [2]: https://www.elitebnc.org/ + [3]: http://znc.in/ + [4]: https://freenode.net/ \ No newline at end of file diff --git a/content/blog/2017-02-07-working-with-j2me-on-linux-in-2017.md b/content/blog/2017-02-07-working-with-j2me-on-linux-in-2017.md new file mode 100644 index 0000000..1ce14cf --- /dev/null +++ b/content/blog/2017-02-07-working-with-j2me-on-linux-in-2017.md @@ -0,0 +1,47 @@ +--- +title: Working with J2ME on Linux in 2017 +author: rhnvrm +type: post +date: 2017-02-07T20:18:16+00:00 +url: blog/2017/02/07/working-with-j2me-on-linux-in-2017/ +categories: + - tutorials +tags: + - fedora + - iot + - java + - linux + - notes + - productivity + - tutorial + +--- +I recently had to work on the J2ME platform for a course at my university. It is an old technology and does not have many recent articles about using or installing J2ME on Linux. J2ME SDK has had no support for Linux for a long time. The SDK 3.x only has support for Mac and Windows. The last version available was by Sun which is called the Sun Java Wireless Toolkit 2.5.2. This comes bundled with NetBeans 7.2 version. But the emulator that comes with it does not seem to work. Although, another emulator availble on sourceforge called MicroEmulator is able to run the JAR files built using NetBeans for the Wireless Toolkit Platform. + +Here is a list of all the requirements: + + 1. [JDK 7][1] (Netbeans 7.2 does not work with JDK 8, [instructions on installing][2]) + 2. [NetBeans 7.2][3] + 3. [Sun Java Wireless Toolkit for CLDC 2.5.2 ML][4] (Optional, Explained Below) + 4. [MicroEmulator][5] + +Steps: + + 1. Install JDK 7. + 2. Install NetBeans 7.2 and make sure to use JDK 7 instead of JDK 8 during the installation. If you forgot to do so, you can edit the conf file in the etc folder. + 3. After installing NetBeans 7.2, you should create a new J2ME Mobile Application Project, check the CLDC 1.1 and MIDP 2.0 + 4. Press build to test if the project is built or not + 5. If the project builds successfully, great. Otherwise, there could be two problems. Run the Sun Java Wireless Toolkit 2.5.2 shell script and install it and add it as a Platform in NetBeans and try creating a new project with this platform instead. If it says that some libraries such as libXt.so are are missing in the preverify step, you need to install these (i686 versions) using your package manager. + 6. The emulator bundled with NetBeans will not work so we need to use MicroEmulator. For this you can extract the zip file somewhere and run the jar file using \`java -jar microemulator.jar\`. For making your life easier, you can modify your ANT build-impl.xml file to run the emulator after building the JAR file of your J2ME project. Here is the code which you can modify according to where you extracted microemulator:
<target name="post-jar">
+        <exec executable="/bin/sh">
+            <arg value="-c"/>
+            <arg value="java -jar /home/rhnvrm/Software/microemulator/microemulator.jar ${dist.dir}/${dist.jar}" />
+        </exec>
+</target>
+
+ + [1]: http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html#jdk-7u80-oth-JPR + [2]: https://docs.oracle.com/javase/7/docs/webnotes/install/linux/linux-jdk.html#install-64 + [3]: https://netbeans.org/downloads/7.2/ + [4]: http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javame-419430.html#sun_java_wireless_toolkit-2.5.2-ml-oth-JPR + [5]: https://sourceforge.net/projects/microemulator/ \ No newline at end of file diff --git a/content/blog/2017-02-09-.md b/content/blog/2017-02-09-.md new file mode 100644 index 0000000..6c4becd --- /dev/null +++ b/content/blog/2017-02-09-.md @@ -0,0 +1,13 @@ +--- +title: I’m taking a class on Psychoanalysis of Films… +author: rhnvrm +type: post +date: -001-11-30T00:00:00+00:00 +draft: true +url: blog/?p=177 +categories: + - uncategorized +format: status + +--- +I’m taking a class on Psychoanalysis of Films. One of the tasks of the course is to make a 10 page screenplay by the end of the course. I recently read about Lacan’s interpretation of Freud’s Vorstellungsrepräsentanz. \ No newline at end of file diff --git a/content/blog/2017-02-09-vorstellungsreprasentanz.md b/content/blog/2017-02-09-vorstellungsreprasentanz.md new file mode 100644 index 0000000..26e3598 --- /dev/null +++ b/content/blog/2017-02-09-vorstellungsreprasentanz.md @@ -0,0 +1,51 @@ +--- +title: Vorstellungsrepräsentanz +author: rhnvrm +type: post +date: 2017-02-09T13:11:59+00:00 +url: blog/2017/02/09/vorstellungsreprasentanz/ +client-modified: + - "1523384480" +dsq_thread_id: + - "7217770366" +categories: + - misc +tags: + - sociology + +--- +
[][1]
Las Meninas
+ +In Lacan’s seminars, he discussed the artists Cézanne, Holbein and Velasquez. In each case the fil rouge which connected Lacan’s thought was the idea of shifts in perspective leading to ways in which the artist had produced a work that evoked the experience of the “gaze”. In Seminar XIII, in discussing Velasquez’ Las Meninas, Lacan identifies the “picture within the picture” which we see Velasquez working on, as the Vorstellungsrepräsentanz , the representative of the representation. Lacan very clearly distinguished representation as being on the side of signification, whereas the “representative of representation” as being on the side of the signifier. In Las Meninas the “picture in the picture” is painted by Velasquez at the conjunction of two perspectives which are impossible in one space. Lacan said the “picture in the picture” as the “representative of representation” casts uncertainty on other “representations” in the painting. These other “objects” take on this disturbance of perspective in a domino effect, which allows many elements of the painting to take on this “representative of the representation” effect. This destabilizing of the visual space of the painting allows for displacements and condensations of images in the painting. An endless series of questions arise about the relations between the elements in the painting. People have talked about this painting for 350 years! What grounds the artist’s ability to do this is a masterful knowledge of his craft and an appreciation of a beyond of representation. With Las Meninas, it is Velasquez’ ability to construct an impossible melding of perspectives that keep the viewer is suspense. + +When serious artists use all of their knowledge as artists to attempt to render something beyond representation, they are structurally placing themselves in the position of evoking the gaze for their audience. They do not transmit their knowledge directly to the audience. Velasquez used his knowledge from the arts of perspective and from other domains of artistic technique. This is similar to the analyst who must have knowledge of many kinds which are transmitted to him in the learning of his craft. But he cannot use this knowledge directly, it only sustains his attempt to stay in the position of “objet petit a”. Similarly the artist cannot simply tell you what he means or transmit his knowledge directly. + +**An example of this in cinema is the ending of the movie 2001: A Space Odyssey by which was written and directed by Stanley Kubrick.** + + + +The trip through the wormhole takes our protagonist to a particularly ambiguous environment, adorned with luxurious furnishings but maintaining a clinical or rather detached, oddly misunderstood and superficial facsimile of luxury. Here Dave runs through his life, in fast forward until he dies and is reborn in the form of the ‘Star Child’. The cuts we see here have Dave observing himself in the third person, then we switch over to the other Dave and follow him. This device is an ingenious way that Kubrick elegantly side steps the use of the montage technique, simultaneously progressing time without resorting to fades, whilst furthering the artificiality of the environment (with) a deliberate manipulation of time. + +In order to understand what’s brought us to this point it’s now necessary to consider the monolith. It’s arrival at the dawn of man spurred the next step in human development, man begins to use tools, and rapidly the balance of power shifts in his favour, even within his species. The famous moment of the bone being thrown into the air and the jump cut to the spaceship is making a parallel between the two tools, the bone and the spaceship, and this illustrates a defining moment on evolution where man begins to use tools, the rudimentary bludgeon to begin with through to the sophisticated space ship. The point at which the aliens have interacted with humans again coincides with the point that artificial intelligence, in the form of HAL, has arrived. HAL is the tool that becomes a threat to humanity, it’s sophistication approaching and reflecting, possibly fully achieving, the emotional capabilities and immaturities of humans, becoming sophisticated to the point where it almost becomes more human than the rather unemotional creators. As Dave’s journey approaches its end we see him observing the final stage of life as we know it, that of death. Once again the transition is seamless as we move into the dying moments of the current stage of human existence, an existence that must end to make way for the next step. The Monolith reappears again at the time of Dave’s impending death, when he dies the Star Child is born, the transcendent being that exists literally and in every way above humanity. The monolith then returns Dave back to Earth. The cycle of his trip and the cycle of the films arc is completed as we see the beginning of a new phase of humanity again.
+ +
The Ambassadors
+ +Jacques Lacan exemplified the presence, the encounter with the gaze with Hans Holbein’s painting “The Ambassadors”. The 16th century interior in which the two characters are represented is violently disrupted by a figure in the middle, which at a first sight resembles nothing and puzzles the viewer. The figure of the skull floating randomly between the painting’s borders annihilates everything the painting otherwise depicts. All the symbols of power, arts and science are disavowed by the view of the skull, which stresses the futility of everything in the symbolic order. I am bringing this 16th century painting into discussion because I find the skull’s intrusion, given as an example of the power of the gaze by Lacan himself, similar to the presence of Kubrick’s black monolith in the middle of the white neoclassical room, as well as in the African Savannah. This element’s presence is uncanny. The monolith is there but viewed from a rational perspective, shaped by the rules of the symbolic world, it is not supposed to be there. The image is complete without it and its presence only bothers, stirs and makes the viewer uncomfortable, exactly as the skull in Holbein’s painting. But in contrast to the skull, the monolith has a neutral shape, cannot be read as an imagistic symbol for anything. It is a black block with no traces of features to trigger any kind of connotative meaning, in the middle of an image which would make perfect sense otherwise. Unlike the skull which is immediately read as a symbol of death, as a memento mori, the monolith stands for nothing but itself. One cannot pinpoint its nature or its purpose, its beginning or its end, the only fact that one can know is that the monolith exists, it is real and it is present. Furthermore, it is literally a foreign body, an extraterrestrial entity. + +In what concerns the last apparition of the monolith, it seems to force itself in the symbolic structure. The visual contrast between the white room and the black entity enforces the differences in the nature of the two. Bowman, the human subject is “trapped” in the room, he cannot escape the influence of the monolith. His behaviour does not change, but he involves in a silent dialogue with the monolith, a dialogue which is beyond words, which has no use or need for language. It is so powerful that defies language, and with it defies the worldly order and structure. The dialogue between the monolith and the character is out of reach for the spectator, but, nevertheless, the monolith’s power, the gaze, transcends the screen and proposes a different dialogue to every eyes which are set on it, because one cannot avoid the gaze. + +Maybe the final encounter with the monolith is not meant to be deciphered like one would crack down a code, like it would be a conglomeration of symbols which read in the correct order and by the right pattern reflect the great truth. Maybe it is supposed to be felt, and it is itself an encounter with the great truth, with the big Other, an encounter with no need for words, or symbols, or meanings. Maybe it is so puzzling because of our need for structure, for meaning and because of our incapacity to accept the existence of non-sense and only of senses. It might just be a moment of freedom for the character and for the spectators and the movie closes to an end with the Star Childs gaze at the spectator. And therefore, the monolith is the “representative of the representation”. A monolith within a monolith. A fantasy. + +**From:** + + 1. http://convergencia.aocc.free.fr/texte/simpson-a.htm + 2. http://cynicalcelluloid.blogspot.in/2012/01/2001-analysis-of-last-10-minutes.html?zx=e7fb7312030e1b83 + 3. http://mariabiancam.coventry.domains/screen-cultures-and-selves/kubricks-monolith-and-lacans-gaze/ + +**Further Reading:** + + 1. https://www.artsy.net/article/artsy-editorial-centuries-people-las-meninas + +#sociology + + [1]: https://en.wikipedia.org/wiki/Las_Meninas \ No newline at end of file diff --git a/content/blog/2017-02-14-survey-paper-on-security-in-wireless-sensor-networks.md b/content/blog/2017-02-14-survey-paper-on-security-in-wireless-sensor-networks.md new file mode 100644 index 0000000..a0a70fc --- /dev/null +++ b/content/blog/2017-02-14-survey-paper-on-security-in-wireless-sensor-networks.md @@ -0,0 +1,20 @@ +--- +title: Survey Paper on Security in Wireless Sensor Networks +author: rhnvrm +type: post +date: 2017-02-14T12:46:54+00:00 +url: blog/2017/02/14/survey-paper-on-security-in-wireless-sensor-networks/ +categories: + - projects + - uncategorized +tags: + - iot + +--- +Wireless Sensor Network is an emerging area that shows great future prospects. Today such networks are used in many industrial and consumer applications, such as military, industrial process, monitoring health and in automated and smart homes. So far, the researchers have only focused on making WSNs useful, feasible, and less emphasis was placed on security. The sensors used are susceptible to different types of attacks, denial of service, physical tampering. In hostile scenarios, it is very important to protect WSNs from malicious attacks. This is the reason we need better security against these challenges, threats and issues in WSN. The intent of this paper is to shed light on the security related issues and challenges in wireless sensor networks investigated by researchers in recent years and that shed light on future directions for WSN security. + +  + +[View Fullscreen][1] + + [1]: /wp-content/plugins/pdfjs-viewer-shortcode/pdfjs/web/viewer.php?file=http%3A%2F%2F13.232.63.7%2Fwp-content%2Fuploads%2F2017%2F07%2FTP_WSN2017_Group_15-1.pdf&download=true&print=true&openfile=false \ No newline at end of file diff --git a/content/blog/2017-03-12-just-discovered-xfce4-has-an-inbuilt-drop-down.md b/content/blog/2017-03-12-just-discovered-xfce4-has-an-inbuilt-drop-down.md new file mode 100644 index 0000000..21c2899 --- /dev/null +++ b/content/blog/2017-03-12-just-discovered-xfce4-has-an-inbuilt-drop-down.md @@ -0,0 +1,16 @@ +--- +title: Just discovered Xfce4 has an inbuilt Drop Down… +author: rhnvrm +type: post +date: 2017-03-12T08:14:17+00:00 +url: blog/2017/03/12/just-discovered-xfce4-has-an-inbuilt-drop-down/ +categories: + - uncategorized +tags: + - linux + - productivity + - xfce +format: status + +--- +Just discovered Xfce4 has an inbuilt Drop Down Terminal which you can use by running the command \`xfce4-terminal –drop-down\` using an Application Shortcut. Applications – Settings – Keyboard. Select the Application Shortcuts tab, click on the Add button, type in the command and give a shortcut key. I used F12. \ No newline at end of file diff --git a/content/blog/2017-04-20-retrofitting-led-lamps-into-smart-lamps.md b/content/blog/2017-04-20-retrofitting-led-lamps-into-smart-lamps.md new file mode 100644 index 0000000..5f66457 --- /dev/null +++ b/content/blog/2017-04-20-retrofitting-led-lamps-into-smart-lamps.md @@ -0,0 +1,21 @@ +--- +title: Retrofitting LED Lamps into Smart Lamps +author: rhnvrm +type: post +date: 2017-04-20T12:59:05+00:00 +url: blog/2017/04/20/retrofitting-led-lamps-into-smart-lamps/ +categories: + - projects +tags: + - iot + +--- +Objective of this project was to show as a proof of concept that we can pick up any off-the-shelf generic lamp and by implementing minor hardware changes using an arduino, convert it into a Smart Lamp. We have implemented lamp switching based on environmental factors (such as Temperature, Light intensity etc), hand gestures (such a clapping actions), which can be set up by the user by attaching triggers to various conditions in the User Dashboard which was made in Processing 3. + +[View Fullscreen][1] + + + +  + + [1]: /wp-content/plugins/pdfjs-viewer-shortcode/pdfjs/web/viewer.php?file=http%3A%2F%2F13.232.63.7%2Fwp-content%2Fuploads%2F2017%2F07%2FWSN-Project-Report.pdf&download=true&print=true&openfile=false \ No newline at end of file diff --git a/content/blog/2017-05-06-rendezvous-with-a-reflection-screenplay.md b/content/blog/2017-05-06-rendezvous-with-a-reflection-screenplay.md new file mode 100644 index 0000000..2bbb8e1 --- /dev/null +++ b/content/blog/2017-05-06-rendezvous-with-a-reflection-screenplay.md @@ -0,0 +1,884 @@ +--- +title: Rendezvous with a Reflection – Screenplay +author: rhnvrm +type: post +date: 2017-05-06T16:38:45+00:00 +url: blog/2017/05/06/rendezvous-with-a-reflection-screenplay/ +categories: + - misc +tags: + - cinema + - psychology + - sociology + +--- +

+ “Rendezvous with a Reflection” +

+ +

+ [First Draft] +

+ +

+ by +

+ +

+ Padamja Gupta +

+ +

+ Rohan Verma +

+ +

+ (Group – “Untitled”) +

+ +

+ A girl, struggling to accept reality, confronted by her own reflection. +

+ +Instructor: Shrimoy Chaudhury
Course: Psychoanalytic Films through Historical Lens
+ +  + +

+ ACT I +

+ +FADE IN: + +A long shot of New Delhi and the skyline. The sun is rising breaking dawn. + +Camera pans to visuals of empty shopping streets being lit with the morning sunlight. Some shopkeepers can be seen opening their shutters and the silence breaks with the opening of the shutters. + +Low key piano starts playing and the camera pans to a shot of birds flying across the sky. + +FADE TO Apartment Complex + +Outside the gate of an apartment complex, heavy traffic can be seen. People rushing out of the complex. Streets are now filled with people who are getting on with their lives. + +FADE TO Inside the Complex + +Camera shows a smaller, quieter street of the complex. We see a distinct, colorful door in this shot that is the home of our protagonist. It is on the ground floor of the apartment complex that towers 10-15 floors. + +We see a shot of school children with their school bags waiting for the school bus just on the opposite side of the street. + +CUT TO shot of 7:00 on a digital alarm clock + +Loud sound of beeping alarm starts playing over the low key piano which fades slowly. We can hear the cars outside and the sounds of traffic. Along with the simple noises of hustle and bustle of the city. + +Hand comes into the frame to shut down the sound. + +As soon as the alarm is switched off, the radio starts playing pop music with positive beats. We are situated in a usual Indian students room. There are posters of movies and rock bands on the wall. The posters are adding color to the walls of the dusty pale white walls of the room. The girl is still half asleep and brushes her hand through her messy hair. She stares at the clock and listens to the music of the radio and stands up slowly from the bed. + +She appears to be in her early twenties in fair shape. She is in her pajamas. + +Her feet touch the floor, shot of the magazines and random bits of rubbish lying around. The mess in the room adds to the vibrancy and color of the room. + +FADE TO Bathroom + +A mirror comes on screen. Sound of rinsing can be heard. Suddenly a face comes into the frame from the bottom. We can see NAINA’s face in the mirror and her messy, entangled and long hair and her back. She looks at the mirror, fixes her hair and smiles. + +The shot still focusing on the mirror, we can see her turn around and leave the bathroom, and the mirror without a reflection. + +FADE TO scene of the common area of apartment. + +It is a brightly lit room with windows. There are sofas and the windows let in the light from outside and fill the room. + +We can see NAINA walking towards the kitchen from her room with a purse. She is dressed up casually in T shirt and jeans. + +We can hear the sound of a pressure cooker coming from the kitchen. We can see rays of sunlight streaming in from the kitchen door. + +FADE TO kitchen + +We see NAINA entering the kitchen through the door, she looks at her mother making breakfast. She seems enthusiastic for the coming day. We can see her mother breaking an egg on the frying pan. Sound of crackling egg whites on the frying pan can be heard. + +NAINA grabs two pieces of fresh bread from the 12 pack of bread that is on the table and pours out a glass of milk from the glass bottle of boiled milk. + +NAINA looks at her mother cutting onions for the omelette with a knife. + +NAINA: + +Good morning mummy! + +MOM: + +Good morning, had a good night’s sleep beta? You had those bad dreams again? + +NAINA: + +Nothing bad mummy… + +NAINA’s mother gives her the plate of cooked omelette and she starts eating it with the bread. + +CAMERA PANS TO NAINA + +She is taking the finished plate of her breakfast and washing it in the kitchen sink. + +We see NAINA picking up her purse from beside the dining table. + +NAINA: + +Ok mummy, gotta go! Don’t want to be late for college! See you later. + +MOM: + +Have a nice day beta! + +FADE TO outside the apartment + +We see NAINA walking out of the apartment complex. + +The sun is now shining brightly, she is almost blinded by the bright light and crosses the street to the other side. + +In the shot we can see children waiting for their school bus in front of the street. + +NAINA begins to cross the street. + +Suddenly, we see a school bus crashing into NAINA.

+ +

+ Sound of screeching tires can be heard. +

+ +

+ Immediately fade to black. +

+ +

+ ACT II +

+ +

+ FADE IN: +

+ +

+ Low key piano strokes play. +

+ +

+ CUT TO Digital Clock with alarm ringing at 7:00 AM. +

+ +

+ Loud sound of beeping alarm starts. +

+ +

+ We see NAINA jumping from the bed in fear. She looks around and finds herself back in her room. +

+ +

+ She shuts the alarm, this time bleaker music plays on the radio. +

+ +

+ NAINA: +

+ +

+ Seems like it was just a dream. +

+ +

+ She stands up from the bed, laying her feet on the ground. We see the same shot of the magazines and random bits of rubbish lying around. But now the color seems to be faded. The room and posters on the wall also look a bit less colorful. There is a tone of bleakness which can be seen. +

+ +

+ FADE TO bathroom +

+ +

+ We see NAINA’s back and face in the mirror. She rinses her mouth and puts the toothbrush on the edge of the sink. She puts water from the faucet on her face to wash it. She rubs her eyes. She’s startled to find her reflection to be a bit different. She looks at her hand and then at the reflections hand. She then waves it. +

+ +

+ NAINA: +

+ +

+ What is happen— +

+ +

+ There is silence, except the sound of the flowing tap, which is also a bit lower in volume than in the previous scene. +

+ +

+ Suddenly, we hear the sound of something falling, it’s the toothbrush. She looks at it but doesn’t pick it up. She again sees the reflection, and it is seems normal now. A look of being creeped out is visible on her face. +

+ +

+ The shot still focusing on the mirror, we can see her turn around, this time frantically leave the bathroom but not the reflection in the mirror. +

+ +

+ FADE TO scene of the common area of apartment. +

+ +

+ We can see NAINA walking towards the kitchen from her room. This time she is not dressed up. She is still in her pajamas. We can hear the pressure cooker, but this time the cooker is having a higher pitch. +

+ +

+ Fade to kitchen +

+ +

+ NAINA enters the kitchen, her mom can be seen preparing the breakfast. NAINA sits down at the table. Her mom is making eggs on the frying pan. The crackling sound of the eggs is not heard as clearly as last time. +

+ +

+ NAINA grabs a single piece of bread from the 12 pack of bread that is on the table and looks at the bowl of boiled milk. +

+ +

+ We see her mom turning and looking at her as soon as she grabs the bread. +

+ +

+ NAINA : Morning Mom +

+ +

+ Suddenly, she stops tending to the eggs that are being fried and with a concerned voice says +

+ +

+ MOM: Good morning, beta.. you sound pretty tired. Did you sleep well? +

+ +

+ This time her voice is different, we hear some disturbances like cracking in the mother’s voice and it is a bit unclear. +

+ +

+ NAINA: Bad dreams.. +

+ +

+ NAINA grabs the bread and was about to leave when her mom turns to her while cutting onions for the omlette. She looks at her mother who now looks a bit different. This makes her jump against the wall with an astonished and scared face. The bottle of milk falls on the ground and shatters into pieces. Her mother’s face was different, her lips seemed to be inside out, giving her face a look straight out of a nightmare. +

+ +

+ Mom : What is wrong beta? +

+ +

+ She completely turn towards her, with the knife pointing towards NAINA. +

+ +

+ FADE TO scene of the common room +

+ +

+ It was way too much to handle for NAINA, she can be seen running out of the door and closing it. +

+ +

+ This time outside, it’s not that bright while also being a bit greyed out. +

+ +

+ She keeps running in panic. +

+ +

+ It was when she was running and crossing the street, we again see the same children waiting for their school bus +

+ +

+ Suddenly, we see the same school bus crashing into NAINA.

+ +

+ Sound of screeching tires can be heard. +

+ +

+ The screen fades to black +

+ +

+ FADE IN +

+ +

+ Low piano keystroke plays in the background +

+ +

+ CUT TO Digital Clock showing 7:00 AM. +

+ +

+ NAINA wakes up with a jump this time. Scared on her bed, sweating like a pig. +

+ +

+ The same shot of the magazines and her feet touching the ground. +

+ +

+ Her room is very different this time, it is darker, greyer and messier. +

+ +

+ FADE TO BATHROOM +

+ +

+ The water is running in the sink. NAINA is away from the mirror, toward the camera, lost and scared. She is blocking the reflection in the mirror for the camera. +

+ +

+ Suddenly a voice over can be heard +

+ +

+ “What are you scared of?” +

+ +

+ NAINA is shocked to her core listening to the voice. She immediately turns toward the mirror since the sound came from behind her. She sees a blurry figure. She rubs her eyes and leans forward. She can see the eyes of the figure which is making eye contact with NAINA. It was her own reflection. She is shocked to look at herself. +

+ +

+ REFLECTION: BOOOO!! +

+ +

+ NAINA jumps back, away from the mirror in fear with no clue as to what is happening with her. She again looks into the mirror, checks if her reflection is mirroring her. It is! +

+ +

+ NAINA starts crying desperately. +

+ +

+ REFLECTION: Thought that the “BOOOO!” would be clear enough.. +

+ +

+ NAINA: Wh-What are you? +

+ +

+ The “Reflection” was amazed by such a question. +

+ +

+ REFLECTION: “Wh-wh-wh” Do I stutter out a question like this? +

+ +

+ NAINA: What are you ?.. +

+ +

+ The Reflection smiles. +

+ +

+ REFLECTION: I am what we call a paradox, the question and the answer at the same time, a paradigm all together. +

+ +

+ NAINA : (shouts) It is not possible.. +

+ +

+ REFLECTION: Or maybe not, may be I am just a product of your imagination or a part of your schizophrenic mind. Or it is also possible that I am a divine intervention, that’d be something unexpected, isn’t ? +

+ +

+ NAINA: (shouts again) No.. this is not possible! +

+ +

+ REFLECTION: Impossible is the kind of haircut you have. I look like a dork for God’s sake. +

+ +

+ The Reflection starts playing with her hair looking at it in dislike. +

+ +

+ NAINA : What is it that you want? +

+ +

+ REFLECTION: I want you to start asking the right questions. +

+ +

+ NAINA looks around, it is still her bathroom. +

+ +

+ NAINA : Where am I ? What is going on with me… Here ? I do not understand anything. +

+ +

+ REFLECTION: Wow! One at a time.. I said the right questions not a multi questions pop quiz! +

+ +

+ NAINA : WHERE AM I? +

+ +

+ REFLECTION: Look around from your point of view, it is still your bathroom! +

+ +

+ NAINA: It is not possible again.. It does not look like my home.. There.. There are no colors.. From where does this noise keep interrupting me?! Th-This is not anything I know. +

+ +

+ REFLECTION: How can you be so sure? You must have heard the saying “Ignorance is a blessing”. I.. on the other hand..like to believe that “ Ignorance leads to knowledge”. +

+ +

+ NAINA: Knowledge? +

+ +

+ REFLECTION: Yes! Knowledge! Look at yourself, lost in your own ignorance, asking yourself those questions: Where, What,.. But even except from me maybe.. +

+ +

+ NAINA : What do you mean? +

+ +

+ REFLECTION: The further you fall away from knowledge the further you approach knowledge at its pure state! +

+ +

+ NAINA: This is just a dream… I am just dreaming… +

+ +

+ The reflection continues her speech as if she never heard the last part. +

+ +

+ REFLECTION: It is the knowledge about the truth, about the sins, your hidden memories… about you, me, us,.. And.. Her +

+ +

+ NAINA:Her? +

+ +

+ REFLECTION: Don’t you remember? +

+ +

+ NAINA: Remember what? +

+ +

+ The headache is getting worse for NAINA +

+ +

+ REFLECTION: Think harder! The headache is not gonna stop! +

+ +

+ NAINA: I don’t remember!!! +

+ +

+ REFLECTION: NAINA, NAINA…!! Do you see, where the knowledge leads you?! Leading you to forget! Leading you to meet me! Leading you to somewhere you do not have a clue about! Do you know how much pain she was in? How much she kept thinking and hoping? Do you? +

+ +

+ NAINA: I don’t know what are you talking about ?… +

+ +

+ Her headache grows stronger, she starts gripping her head hard! +

+ +

+ REFLECTION: You don’t remember, do you? No, you don’t, otherwise you would not be here, now would you? +

+ +

+ NAINA: I have had enough of this. Just tell me what has happened? +

+ +

+ REFLECTION: It would be too easy to give all the answers on a plate, look at who you are talking to ? Look at me!! If you can’t remember, how can I possibly tell you ? +

+ +

+ NAINA: What is that I have to remember ? How can I remember it? +

+ +

+ The REFLECTION smiles again +

+ +

+ REFLECTION: Didn’t I tell you the answer already “Ignorance is a blessing”! In order to remember you have to forget! Isn’t it ironic? +

+ +

+ The REFLECTION laughs. NAINA seems lost! +

+ +

+ NAINA: What do you mean!! One moment, you are saying you can’t tell me, the other you say something completely opposite! You are playing with me! WHO ARE YOU?? +

+ +

+ REFLECTION: OH GOD!!! Let’s not restart the whole conversation again!! +

+ +

+ NAINA: How can I remember something I have forgotten!!! What are babbling about! Her, Her, Who is “Her”? +

+ +

+ REFLECTION: NAINA, innocent NAINA, why can’t you see the meaning of it? Forget to remember? One never forgets a thing, it is just that when one has stored so much information, learned so many things, year after year that eventually he starts forgetting the most important things, all those things when cumulated result in a sum of all our base memories, feelings and experiences, nothing more, nothing less. However, one chooses to suppress their innermost, traumatic experiences using everyday facts and figures, for reasons unknown to us. Maybe the truth is simply a bit too much for you to handle. +

+ +

+ NAINA: Are you trying to say that the key of this place is my ability to remember? I had never asked to be here in the first place. I honestly do not understand what you want me to remember! +

+ +

+ REFLECTION: I wonder, is it me that wants “you” to remember or is it you yourself? Tell me Naina, what are dreams? Taking the words of Shakespeare .. dreams are the “children of an idle mind”, and how right he was! Dreams are our thoughts themselves, one’s deep memories trying to come through, trying to escape! Trying to talk to you, Naina, but have you been listening? +

+ +

+ NAINA: It is a trick.. You are trying to trick me.. I am not supposed to be here! +

+ +

+ REFLECTION: What were you dreaming last night, Naina? +

+ +

+ Listening to this, Naina suddenly freezes, her headache is too much. She cannot think at all. +

+ +

+ REFLECTION: You were dreaming about her. Think! Think harder! Naina… weren’t you? +

+ +

+ NAINA: Y..Yes, I think so, .. She was there all alone.. Waiting for someone… someone special.. But she does not seem to come… +

+ +

+ REFLECTION: How long she had been waiting, Naina ? How long has she been waiting? +

+ +

+ NAINA: She has been waiting forever! She believes she will come. She does not give up hope. +

+ +

+ REFLECTION: Why isn’t she coming ? Did she forget about her? +

+ +

+ NAINA:N-NO.. +

+ +

+ Naina is silently looking into her reflection. +

+ +

+ REFLECTION: How does she look like, Naina? +

+ +

+ NAINA: She- +

+ +

+ Naina pauses in disbelief +

+ +

+ Naina: I do not remember… I cannot remember.. +

+ +

+ REFLECTION: You can’t remember her face? (smiles) What happened Naina? Is there something else you can remember? +

+ +

+ NAINA: I was with her.. It’s you!! It’s all you playing games with me +

+ +

+ (Reflection laughs) +

+ +

+ REFLECTION: It seems you really do not want to listen do you? Just look at your hands…. +

+ +

+ Naina looks at her hands, they are all covered with blood, dripping from her hands. Blood.. Not hers.. From someone else… +

+ +

+ NAINA: WHAT IS THIS ??? +

+ +

+ REFLECTION: (laughs) +

+ +

+ Oh-oh you tell me Naina! +

+ +

+ Naina: I know it’s all you playing games with me! It’s all your fault! IT’S ALL YOU! +

+ +

+ Naina tries to grab the reflection, but her hands just hit the mirror leaving bloody handprints on it. +

+ +

+ NAINA: It’s all a dream… +

+ +

+ REFLECTION: Have you ever wondered that maybe that dream about her was not one, that it might have been reality? Maybe this is not a dream, maybe your so called “life” is a dream! Maybe you aren’t even alive at all! (laughs) Or maybe it’s a question of sanity Naina! I don’t think that talking to your reflection is what you call the sanest thing on the planet. +

+ +

+ The REFLECTION smiles, Naina seems to be totally lost. The noise is getting louder, her heart beating faster and faster. +

+ +

+ NAINA: Where am I .. This isn’t a world! +

+ +

+ REFLECTION: You are right.. In a way.. Different perspectives, different worlds.. Life is just a dream, Naina.. A dream.. +

+ +

+ Blood starts dripping from the Reflection’s eyes! +

+ +

+ REFLECTION : That– +

+ +

+ Naina covers her eyes with her hands, two hands suddenly approach Naina…They come from the mirror… +

+ +

+ REFLECTION +

+ +

+ –ends! +

+ +

+ They suddenly grab Naina and push her to the mirror, her face is pressed against the mirror! Face to face with herself! +

+ +

+ REFLECTION: Fading memories, new memories! And a dream Naina, a ream of you in a world without you! (smiles) Welcome to my world! +

+ +

+ SCREAM +

+ +

+ ACT III +

+ +

+ FADE IN: +

+ +

+ Low key piano strokes play. +

+ +

+ CUT TO Digital Clock showing 7:00 AM. +

+ +

+ We are again inside the room. +

+ +

+ NAINA wakes up suddenly, this time she looks around her room, it is still bleak and the posters seem faded and colorless. +

+ +

+ She shuts off the alarm, the radio is playing static this time. +

+ +

+ We see the same shot of her feet touching the ground. The magazines on the floor are colorless. There is no noise of the traffic or the hustle and bustle of city life. It’s all quiet. +

+ +

+ FADE TO bathroom +

+ +

+ The camera is focused on the mirror. +

+ +

+ NAINA rushes inside the bathroom, we can only see her back and messy hair. She looks at herself in the mirror, the mirror reflects all her movements precisely. +

+ +

+ She knocks on the mirror. +

+ +

+ NAINA: +

+ +

+ HELLO!!?? +

+ +

+ There is no reaction from the reflection. NAINA smiles. +

+ +

+ NAINA: +

+ +

+ Was nothing but a dream. +

+ +

+ She turns her back away from the mirror and walks away. She doesn’t notice the water that had been flowing from the water tap on the sink. The flow is fast but there is no noise. No sound. +

+ +

+ The camera zooms in on the mirror and the door of the bathroom that is visible until the edges of the mirror are not visible. +

+ +

+ CUT TO Common Room +

+ +

+ We see NAINA walking in a fast pace from the bathroom toward the kitchen. We see her feet stomp on the ground but there is no noise. Only a grey and dark common room with curtains closed, no light coming in. +

+ +

+ We can see the fluorescent white light from the kitchens tube light lighting up the common room area +

+ +

+ FADE TO camera inside the kitchen looking toward the kitchen door. +

+ +

+ We can see the dining table, a pack of 12 pieces of bread that looks like it has been open since a few days. The bowl in which we saw boiled milk seems to be empty. We can see the pressure cooker on the stove, it seems to have been untouched since a few days. +

+ +

+ NAINA walks into the kitchen through the door with a smile on her paranoid face. +

+ +

+ Her smile disappears as she doesn’t find her MOM in the kitchen. She walks toward the stove, glaring at the knife… The same knife that she was using to cut onions now lies next to finely diced stale onions. +

+ +

+ The camera now pans and follows her face from not so far distance +

+ +

+ She bumps herself on the dining table, causing the bottle of milk to fall down and make the glass shatter but there is no sound except muffled sound of something glass like falling for the audience. She doesn’t hear it and continues to see the half eaten omelette still on the plate. +

+ +

+ She then looks at the white milk that is flowing outward from the shattered glass to fill the dark floor. +

+ +

+ NAINA: +

+ +

+ What… is going on? +

+ +

+ She now panics and starts breathing heavily heading outside. +

+ +

+ FADE TO the common room +

+ +

+ We see NAINA now walking briskly towards the door that opens outside the apartment. She opens the door, and walks out. +

+ +

+ CUT TO Shot of Empty Street outside of Apartment facing the door +

+ +

+ We can see the color of the door of the house has faded away. We see NAINA staring into oblivion. The towering apartment block looks dull. The street is empty, all gray, nothing but silence surrounds the once busy. Except the sound of wind blowing past NAINA. +

+ +

+ The children who were waiting for their bus are now no more waiting for their bus. +

+ +

+ CUT TO apartment complex +

+ +

+ Outside the gate, no traffic can be seen. There are no people rushing in and out of the complex. Visuals of empty shopping streets with their shutters down. +

+ +

+ Low key piano starts playing with a shot of birds flying across the sky. +

+ +

+ Fade to black +

+ +

+ TEXT: +

+ +

+ A dream of you in a world without you… +

+ +

+ -FIN- +

\ No newline at end of file diff --git a/content/blog/2017-05-20-.md b/content/blog/2017-05-20-.md new file mode 100644 index 0000000..4e9b0ea --- /dev/null +++ b/content/blog/2017-05-20-.md @@ -0,0 +1,15 @@ +--- +title: "2016" +author: rhnvrm +type: post +date: -001-11-30T00:00:00+00:00 +draft: true +url: blog/?p=192 +categories: + - uncategorized +format: status + +--- +2017 has been a dull year. It has felt even more dull after the fast paced year that 2016 was. + +  \ No newline at end of file diff --git a/content/blog/2017-05-20-xfce4-keyboard-shortcuts-for-clementine.md b/content/blog/2017-05-20-xfce4-keyboard-shortcuts-for-clementine.md new file mode 100644 index 0000000..6f8f2d9 --- /dev/null +++ b/content/blog/2017-05-20-xfce4-keyboard-shortcuts-for-clementine.md @@ -0,0 +1,34 @@ +--- +title: Adding xfce4 Keyboard Shortcuts for Clementine or Spotify +author: rhnvrm +type: post +date: 2017-05-20T15:08:44+00:00 +url: blog/2017/05/20/xfce4-keyboard-shortcuts-for-clementine/ +categories: + - foss + - notes + - tutorials + - uncategorized + - xfce +tags: + - fedora + - foss + - linux + - music + - productivity + - tutorial + - xfce + +--- +xfce4 has default media key settings for Pragha music player. Although, if you use clementine music player you can use keyboard shortcuts to control it with DBus and MPRIS. + +Clementine is known as org.mpris.clementine and you can add the following entries to your Keyboard Settings > Application Shortcuts + +If you use spotify, it is registered as org.mpris.MediaPlayer2.spotify on qdbus. + +
qdbus org.mpris.clementine /Player org.freedesktop.MediaPlayer.Next
+qdbus org.mpris.clementine /Player org.freedesktop.MediaPlayer.Pause
+qdbus org.mpris.clementine /Player org.freedesktop.MediaPlayer.Prev
+
+ + \ No newline at end of file diff --git a/content/blog/2017-06-26-take-out-a-moment-and-think-are-you.md b/content/blog/2017-06-26-take-out-a-moment-and-think-are-you.md new file mode 100644 index 0000000..b5b489c --- /dev/null +++ b/content/blog/2017-06-26-take-out-a-moment-and-think-are-you.md @@ -0,0 +1,20 @@ +--- +title: Take out a moment and… +author: rhnvrm +type: post +date: 2017-06-26T09:12:19+00:00 +url: blog/2017/06/26/take-out-a-moment-and-think-are-you/ +client-modified: + - "1500191178" +categories: + - uncategorized +tags: + - psychology +format: status + +--- +Take out a moment and think, are you going on the internet (reddit/youtube/dota2) because you want to be entertained or because you are really afraid of being bored? + +Boredom comes from having a mind that wants to be entertained. Instead, strive for cultivating a creative mind that can entertain itself (and others). The key word here is “cultivate”. + +#psychology \ No newline at end of file diff --git a/content/blog/2017-07-27-216.md b/content/blog/2017-07-27-216.md new file mode 100644 index 0000000..b8f29a4 --- /dev/null +++ b/content/blog/2017-07-27-216.md @@ -0,0 +1,24 @@ +--- +author: rhnvrm +type: post +date: 2017-07-27T20:40:51+00:00 +url: blog/2017/07/27/216/ +categories: + - uncategorized +tags: + - misc + - sociology +format: status + +--- +While conformity and the playing out of social roles can help shore-up our bridges of self-deception, this may in the end turn out to be more of a curse, than a blessing. For given the brevity of life it is far better to become aware of our deceptions while we still have time to change. But sadly, it is often only when one is at death’s doorstep that they come to recognize the vanity and falseness of their existence up to that point. + +This idea is illustrated in The Death of Ivan Ilyich, one of Leo Tolstoy’s masterpieces. The main character in this work is a Russian magistrate who attains great success in rising to the top of Russian society. However, while enjoying the fruits of his labours, he becomes afflicted by a terminal illness and reflecting deeply on the meaning of life is haunted by a nagging feeling that his life was wasted: + +> “It is as if I had been going downhill while I imagined I was going up. And that is really what it was. I was going up in public opinion, but to the same extent life was ebbing away from me. And now it is all done and there is only death.” (Leo Tolstoy, The Death of Ivan Ilyich) + +This passage by Tolstoy strikes at the root of the danger of living at the mercy of our self-deceptions. Maintaining our illusions requires a massive amount of time and energy and often diverts our attention to vain pursuits. Therefore, our ability to engage in projects and strive after goals which would lead to a more fulfilling life is greatly restricted. To ensure that we don’t face a similar fate as Ivan Ilyich, it is crucial that we take a more honest look at ourselves and the life path that our deceptions have led us down. While most of us have spent years, if not decades, relying on our many self-deceptions, it is still within our ability to break down our false self. + +_Source:_ + + \ No newline at end of file diff --git a/content/blog/2017-09-20-torogo.md b/content/blog/2017-09-20-torogo.md new file mode 100644 index 0000000..7ee1bda --- /dev/null +++ b/content/blog/2017-09-20-torogo.md @@ -0,0 +1,234 @@ +--- +title: HackTheNorth 2017 – University of Waterloo +author: rhnvrm +type: post +date: 2017-09-20T14:25:42+00:00 +url: blog/2017/09/20/torogo/ +categories: + - projects +tags: + - datascience + - hackathon + - python + +--- +[][1] + +I attended HackTheNorth, which is Canada’s Biggest Hackathon and takes place at University of Waterloo campus. I was glad to join over 1000 students from around the world at the University of Waterloo to collaborate and create something extraordinary in 36 hours. I didn’t go in as a team as the visa process was a bit delayed and so none of the participants from India knew if they would be able to go. Well, eventually, we were three people from different universities from New Delhi who formed a team when we met in Canada. + +
+ + + + + + + + + + + + + + + + + + + +  + +# The Project + +We built ToroGo, an app powered by Data Science to help newcomers decide the perfect neighborhood for someone moving to Toronto. I worked on writing the API for the backend and the entire data collection and analysis involved in the project. + + + +
+

+ Inspiration +

+ +

+ We traveled all the way from India and while booking our AirBnb we were overwhelmed with the options available to us. Although, websites like tripadvisor help with reviews of an area, it is often not enough. Toronto welcomes over 40 million visitors annually, and is the leading tourism destination in Canada. So we decided to use the power of data science to help travelers like us solve where to stay. +

+ +

+ What it does +

+ +

+ Find a Place +

+ +

+ In our discussions we came up with three important things that users look at while deciding where to live in a new city: +

+ +
    +
  • + Price +
  • +
  • + Safety +
  • +
  • + Reviews +
  • +
+ +

+ The app requests the user to enter his priority for the above mentioned features and suggests the top 5 suggested places that would suit the user based on data analysis. +

+ +

+ Currency Converter +

+ +

+ Along with that we provide the user easy access to check the live currency exchange rates using XE.com powerful api instantly from the app. It supports searching from 100s of currencies and can instantly give the live exchange rate. +

+ +

+ How we built it +

+ +

+ We used open datasets available from the Canadian Open Dataset website and Airbnb to build an aggregate score of around 130 sub-areas of Toronto City. We chose three parameters, +

+ +
    +
  • + Locality Ratings based on Sentiment Analysis of Reviews +
  • +
  • + Safety Ratings based on Crime Data such as Assaults +
  • +
  • + Priceyness Ratings based on the cost of listings of Airbnbs in a Neighborhood. +
  • +
+ +

+ The data analysis can be viewed in our iPython Notebooks +

+ +

+ Imgur +

+ +

+ After this, we wrote an algorithm based on Euclidean Distance between these ratings and the user’s preferences to suggest the most suitable locations for the user. +

+ +

+ The currency converter is powered by XE.com‘s API and we were able to make an intuitive UX for searching through the currencies. +

+ +

+ Challenges we ran into +

+ +
    +
  • + Data was easy to find but aggregation was tough to do based on the neighborhood level. +
  • +
  • + Getting the heatmap to work based on neighborhood on Android +
  • +
  • + We tried to integrate the Microsoft Azure Chatbot API but were unable to integrate it with the app. +
  • +
+ +

+ Accomplishments that we’re proud of +

+ +
    +
  • + A full ranking of the neighborhoods based on reviews, safety and priceyness of Toronto +
  • +
  • + A fully functional App and API. +
  • +
  • + Firebase Authentication +
  • +
+
+ +
+

+ Built With +

+ + +
+ + [1]: https://www.facebook.com/hackthenorth/photos/rpd.100005363469781/1987147797978461/?type=3&theater \ No newline at end of file diff --git a/content/blog/2017-10-03-.md b/content/blog/2017-10-03-.md new file mode 100644 index 0000000..135e894 --- /dev/null +++ b/content/blog/2017-10-03-.md @@ -0,0 +1,12 @@ +--- +title: I’m moving back to Firefox +author: rhnvrm +type: post +date: -001-11-30T00:00:00+00:00 +draft: true +url: blog/?p=221 +categories: + - uncategorized +format: status + +--- diff --git a/content/blog/2017-10-11-yumex-dnf-is-locked.md b/content/blog/2017-10-11-yumex-dnf-is-locked.md new file mode 100644 index 0000000..e5eb25b --- /dev/null +++ b/content/blog/2017-10-11-yumex-dnf-is-locked.md @@ -0,0 +1,20 @@ +--- +title: yumex-dnf is locked +author: rhnvrm +type: post +date: 2017-10-11T18:43:36+00:00 +url: blog/2017/10/11/yumex-dnf-is-locked/ +categories: + - foss + - notes + - uncategorized + - xfce + +--- +I downloaded a .rpm and double clicked it to install it and it started yumex-dnf. But for some reason it crashed and dnf was locked. I fixed it using + +`yumex-dnf --exit` + +and installed the rpm using + +`sudo dnf install cacher-1.1.10.x86_64.rpm` \ No newline at end of file diff --git a/content/blog/2017-10-16-was-codification-of-odissi-successful-in-capturing-the-true-essence-of-the-dance-as-it-was-prevalent-or-even-as-it-was-performed​-​in-​​the-​​ancient.md b/content/blog/2017-10-16-was-codification-of-odissi-successful-in-capturing-the-true-essence-of-the-dance-as-it-was-prevalent-or-even-as-it-was-performed​-​in-​​the-​​ancient.md new file mode 100644 index 0000000..061d9ea --- /dev/null +++ b/content/blog/2017-10-16-was-codification-of-odissi-successful-in-capturing-the-true-essence-of-the-dance-as-it-was-prevalent-or-even-as-it-was-performed​-​in-​​the-​​ancient.md @@ -0,0 +1,19 @@ +--- +title: Was codification of Odissi successful in capturing the true essence of the dance as it was prevalent or even as it was performed​ ​in ​​the ​​ancient ​​era? +author: rhnvrm +type: post +date: 2017-10-16T01:10:30+00:00 +url: blog/2017/10/16/was-codification-of-odissi-successful-in-capturing-the-true-essence-of-the-dance-as-it-was-prevalent-or-even-as-it-was-performed​-​in-​​the-​​ancient/ +categories: + - uncategorized +tags: + - odissi + +--- +Was codification of Odissi successful in capturing the true essence of the dance as it was prevalent or even as it was performed​ ​in ​​the ​​ancient ​​era? + +  + +[View Fullscreen][1] + + [1]: /wp-content/plugins/pdfjs-viewer-shortcode/pdfjs/web/viewer.php?file=http%3A%2F%2F13.232.63.7%2Fwp-content%2Fuploads%2F2017%2F11%2Fdoc.pdf&download=true&print=true&openfile=false \ No newline at end of file diff --git a/content/blog/2017-10-28-the-male-and-female-dress-of-odissi-dance-an-comment-on-the-literature-on-the-web.md b/content/blog/2017-10-28-the-male-and-female-dress-of-odissi-dance-an-comment-on-the-literature-on-the-web.md new file mode 100644 index 0000000..7c2f749 --- /dev/null +++ b/content/blog/2017-10-28-the-male-and-female-dress-of-odissi-dance-an-comment-on-the-literature-on-the-web.md @@ -0,0 +1,23 @@ +--- +title: The male and female dress of Odissi Dance – An comment on the Literature on the web +author: rhnvrm +type: post +date: 2017-10-28T21:15:43+00:00 +url: blog/2017/10/28/the-male-and-female-dress-of-odissi-dance-an-comment-on-the-literature-on-the-web/ +categories: + - uncategorized +tags: + - odissi + +--- +I was reading an [article][1] about Odissi and I found that the perpetuation of stereotypes do actually come into picture in the case of the content that is written on it. The following is a description of the Dress worn by the dancers: + +> The female dancers wear brightly coloured sari usually made of local silk adorned with traditional and local designs such as the Bomkai Saree and the Sambalpuri Saree. The front part of the sari is worn with pleats or a separate pleated cloth stitched in front to ensure flexibility of movements of the dancer while showcasing excellent footwork. Silver Jewellery adorns her head, ear, neck, arms and wrists. Musical anklets called ghunghru made of leather straps with small metallic bells attached to it are wrapped in her ankles while her waist is tied with an elaborate belt. Her feet and palms are brightened with red coloured dyes called alta. She wears a tikka on forehead and outlines her eyes prominently with Kajal so as to make her eye movements more visible. Her hair is tied in a bun and beautified with Seenthi. A moon shaped crest of white flowers or a Mukoot that is a reed crown with peacock feathers symbolising Lord Krishna may adorn the hairdo. + +The same article describes the male dress in a single line. + +> A male dancer wears a dhoti neatly pleated in the front and tucked between the legs that cover his lower body from waist while the upper body remains bare. A belt adorns his waist. + +It is upto the reader how to interpret this. + + [1]: http://www.culturalindia.net/indian-dance/classical/odissi.html \ No newline at end of file diff --git a/content/blog/2017-11-11-vocabulary-of-odissi.md b/content/blog/2017-11-11-vocabulary-of-odissi.md new file mode 100644 index 0000000..34b4707 --- /dev/null +++ b/content/blog/2017-11-11-vocabulary-of-odissi.md @@ -0,0 +1,456 @@ +--- +title: Vocabulary of Odissi +author: rhnvrm +type: post +date: 2017-11-11T21:24:05+00:00 +url: blog/2017/11/11/vocabulary-of-odissi/ +categories: + - uncategorized +tags: + - odissi + +--- +My argument is that dance can be seen through the lens of linguistics. It is nonetheless, composed of a vocabulary of poses and gestures that are codified within a set by masters to perform Abhinaya (acting) and tell stories similar to how a grammar and a vocabulary is used to write complicated sentences and paragraphs. + +For example, Odissi has the following hand gestures in its vocabulary + + + + + +
+ Odissi Single Hand Mudras
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +
+ Pataka + + Tripataka + + Ardhapataka + + Kartarimukha +
+ + + + + + + +
+ Mayura + + Ardha Chandra + + Arala + + Sukhatundaka +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +
+ Mushti + + Shikhara + + Kapittha + + Katakamukha +
+ + + + + + + +
+ Katakamukha + + Katakamukha + + Katakamukha + + Kapittha +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +
+ Katakamukha + + Katakamukha + + Katakamukha + + Suchi +
+ + + + + + + +
+ Ardhasuchi + + Chandrakala + + Padmakosha + + Sarpasheesha +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +
+ Simhamukha + + Kangula + + Alapadma + + Alapadma +
+ + + + + + + +
+ Chatura + + Chatura + + Bhrmara + + Sakata +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +
+ Hamsasya + + Hamsapakshaka + + Mrigashirsha + + Kangula +
+ + + + + + + +
+ Kapittha + + Trishula + + Tambula + + Vardhamana +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +
+ Vardhamana + + Pushpa + + Baana + + Teera +
+ + + + +
+ +  + +  + +The amazing thing in my opinion is how intuitive gestures are in comparison to words or letters and often signify such great amount of information than what would even comprise a sentence. Odissi repertoire sequentially includes an invocation followed by nritta, nritya, natya, and moksha. + +> The invocation called Mangalacharana is performed followed by offering of flowers called Pushpanjali and salutation to mother earth referred as Bhumi Pranam. Next in line is performance of Batu or Batuka Bhairava or Battu Nrutya or Sthayee Nrutya which is pure dance or nritta dedicated to Lord Shiva. It is performed only on rhythmic music without any recitation or singing. The next part is nritya that encompass expressional dance or Abhinaya to communicate a story, song or poetry through hand gestures or mudras, emotions or bhavas and eye and body movements. The next part natya includes a dance drama based on Hindu mythological texts and epics. An Odissi performance is concluded with the dance movement referred as Moksha that aims to communicate a feeling of emancipation of the soul. + +The most critical here being the pure dance that can be performed to highlight the structure and the vocabulary of the dance using choreography similar to what can be done using advanced penmenship of certain writers in their poems. \ No newline at end of file diff --git a/content/blog/2017-11-30-emotive-adsense-project.md b/content/blog/2017-11-30-emotive-adsense-project.md new file mode 100644 index 0000000..fb4fcf2 --- /dev/null +++ b/content/blog/2017-11-30-emotive-adsense-project.md @@ -0,0 +1,45 @@ +--- +title: Emotive Adsense Project +author: rhnvrm +type: post +date: 2017-11-30T19:59:36+00:00 +url: blog/2017/11/30/emotive-adsense-project/ +categories: + - projects + +--- + + +## Objective + +Use Facial Expressions to find segments of the video where engagement is above a threshold and display advertisements during those segments. + +  + +## Domain Background + +Internet Video Traffic will account for over 80% of all consumer internet traffic in the coming years. According to Cisco, by 2021, every second, a million minutes or almost 17,000 hours of video content will be uploaded on the internet. The whole video market is changing how businesses, brands or government communicate. Even though the bandwidth and internet speeds have increased, the attention span of users is still limited. With increasing number and length of videos, a system which can recommend video segments where the customers are highly engaged with the content can be used to lure customers to watch advertisements is becoming essential. Media corporations relying on getting their message to users must now rely on alternate measures to combat the information overload. Suggesting users with engaging or interesting content is one of those methods. For example, companies like Netflix who are actively pushing their own original content, need to suggest users with engaging clips to lure them into watching more of their content. + +## Problem Statement + +Increasing bandwidth access of users with time has lead to the average youtube video length increasing from 2-5 minutes to 10-15 minutes within just a decade. A one hour video, which was once out of question for normal viewers, is now considered normal. Although, the time of videos has increased, any user can attest that most of the video content is just “fluff” or buffer content with the main content somewhere in the middle. Thereby, finding the most engaging part of a video will result in enabling platforms to suggest the most lucrative parts of the videos to place advertisements in. + +  + +## + +## Solution Statement + +Our project solves this problem of segregating “fluff” from videos and recommending interesting parts of the video. By tagging videos with user reactions, and averaging over multiple users our system will be able to gain knowledge about the content in the video and hence, use the tagged content based on facial reactions of viewers, pick out segments inside a video to recommend to advertisers. The same segments can then be displayed as suggestions using autoplay, on the homepage, to lure viewers to click and view the whole video. + +Finally, due to the large scope of the project, we were able to complete only 2 separate parts of the project. + +  + +**Part 1. Training the Model for Emotion Recognition** + +In this part, we trained a model (accuracy was very low due to limited GPU availability on our side) for Emotion Recognition. + +**Part 2. Prototype UI – Applying Knowledge Engineering** + +In this part, we developed a prototype UI which uses Affdex API for emotion recognition and displays advertisements when user engagement with video is above a chosen threshold. \ No newline at end of file diff --git a/content/blog/2017-12-19-what-thefuck-is-wrong-with.md b/content/blog/2017-12-19-what-thefuck-is-wrong-with.md new file mode 100644 index 0000000..68127a9 --- /dev/null +++ b/content/blog/2017-12-19-what-thefuck-is-wrong-with.md @@ -0,0 +1,16 @@ +--- +title: What thefuck is wrong with… +author: rhnvrm +type: post +date: 2017-12-19T14:35:43+00:00 +url: blog/2017/12/19/what-thefuck-is-wrong-with/ +client-modified: + - "1513694143" +categories: + - uncategorized +format: aside + +--- +**What thefuck is wrong with my zsh?** + +Well, turns out, the reason it took so much time for my zsh to startup, was because of this program called **thefuck**. Used `zsh -xv` to figure out what took so long and did a `dnf remove thefuck` and fixed it. \ No newline at end of file diff --git a/content/blog/2017-12-20-setting-up-latex-on-spacemacs.md b/content/blog/2017-12-20-setting-up-latex-on-spacemacs.md new file mode 100644 index 0000000..b09a6cf --- /dev/null +++ b/content/blog/2017-12-20-setting-up-latex-on-spacemacs.md @@ -0,0 +1,33 @@ +--- +title: Setting up LaTeX on Spacemacs +author: rhnvrm +type: post +date: 2017-12-20T14:47:24+00:00 +url: blog/2017/12/20/setting-up-latex-on-spacemacs/ +categories: + - notes +tags: + - emacs + - foss + - latex + - linux + - spacemacs + - vim + +--- +I have been using Vim for text editing and even Vim mode even in Sublime Text. Although, I wanted to use Org mode so I switched to Spacemacs with Evil mode that gives the best of both worlds. I had been using `TeXworks` and `TeXstudio` for editing and building LaTeX documents but now that I have Emacs, I wanted to try out the `pdf-tools` layer and `latex` layers so that all my work can be done from inside Spacemacs itself. Tomorrow, I even want to set up another tool that allows publishing to WordPress blogs through Emacs itself. Now that I have time to invest, I thought the best investment would be to invest it into saving more time in the future. + +One of the great features about Emacs in my opinion is how much of the information is self documented inside the editor and how little I had to search on my browser as I could just press / and find out what I wanted to do. For example, I wanted to change the font size by one point, and I could easily do it by pressing `/` in my `.spacemacs` file and type font and edit a single line followed by simple restart. All of this without even having to search on the internet. Combine Vim’s excellent editing and maneuverability with the `Org mode` and `auto-completion`, Spacemacs turns out to a be a champion for any person who types for a living or even as a hobby. + +The first step is to add the `latex` layer to the `.spacemacs` file which will automatically install everything required after pressing `SPC-f-e-R`. This, being a layer, will be automatically loaded on opening, say a tex file. + +Then, all that needs to be done is press, `SPC-m-b` to build and `SPC-m-v` to view. + +Although, by default, Emacs will open it in your default PDF viewer. Emacs also provides another layer, `pdf-tools`, briefly mentioned above, which allows rendering PDF files inside Emacs itself. Adding this layer to your config, you can add the following to your config file to set PDF tools to be your default PDF viewer inside Emacs. + +
(setq TeX-view-program-selection '((output-pdf "PDF Tools"))
+  TeX-view-program-list '(("PDF Tools" TeX-pdf-tools-sync-view))
+  TeX-source-correlate-start-server t
+)
+ +Similarly, we can also setup syncing between TeX and the PDF which I will cover sometime later when the need arises. \ No newline at end of file diff --git a/content/blog/2017-12-20-switching-to-spacemacs-based-on.md b/content/blog/2017-12-20-switching-to-spacemacs-based-on.md new file mode 100644 index 0000000..afb880a --- /dev/null +++ b/content/blog/2017-12-20-switching-to-spacemacs-based-on.md @@ -0,0 +1,18 @@ +--- +title: Switching to Spacemacs Based on… +author: rhnvrm +type: post +date: 2017-12-20T11:51:35+00:00 +url: blog/2017/12/20/switching-to-spacemacs-based-on/ +client-modified: + - "1513770694" +categories: + - uncategorized +tags: + - dgplug +format: aside + +--- +**Switching to Spacemacs** + +Based on mbuf (@shakthimaan)’s session in #dgplug about Reading and Writing habits, (https://dgplug.org/irclogs/2017/Logs-2017-12-18-13-23.txt) have decided to move to spacemacs from vim, just for Org mode. Let’s see how it goes! \ No newline at end of file diff --git a/content/blog/2017-12-21-deep-learning-through-the-lens-of-the-information-plane.md b/content/blog/2017-12-21-deep-learning-through-the-lens-of-the-information-plane.md new file mode 100644 index 0000000..b53d20a --- /dev/null +++ b/content/blog/2017-12-21-deep-learning-through-the-lens-of-the-information-plane.md @@ -0,0 +1,198 @@ +--- +title: Deep Learning Through the Lens of the Information Plane +author: rhnvrm +type: post +date: 2017-12-21T14:31:58+00:00 +url: blog/2017/12/21/deep-learning-through-the-lens-of-the-information-plane/ +categories: + - projects +tags: + - datascience + - deeplearning + - informationtheory + - math + - neuralnetwork + - python + +--- +The ridiculous effectiveness of Deep Learning has lead to research on tools that help to analyze these Deep Neural Network based “black boxes”. Recent research papers by the Information Theory community to analyze has rise to a new tool, The Information Plane, which can help analyze and answer various questions about these networks. This article, provides a brief overview of the concepts from information theory required to develop an understanding of the Information Plane, followed by a replication study of the implementation of the paper that introduces this theory with respect to Deep Neural Networks. + +## **1. Introduction** + +Information Theory has long been considered marginal to Statistical Learning theory and has usually not been studied by Machine Learning researchers. It is considered to be an integral part of Communication Engineering and is often known to be the theory of Data Compression and Error Correcting Codes. With increased compute power enabled through GPUs, a new interest in Deep Learning (LeCun et al.[1]) has re-emerged. Although, Deep Learning provides ridiculous effectiveness, there is pretty much no fundamental theory behind these machines and they are often criticized for being used as mysterious “black boxes”[2]. This has lead to major corporations like Intel investing in research that focuses on building an understating of why deep networks work the way they do and has resulted in the recent paper on “Opening the Black Box of Deep Neural Networks via Information Theory” by Ravid Schwartz-Ziv and Naftali Tishby [2] which studies these by analyzing their information-theoretic properties and tries to provide a framework to study them using the Information Plane which have been based upon the work done by Naftali Tishby earlier [3]. The theory provides tools, such as the Information Plane, that can be used to reason about what happens during deep learning, a study of what happens during Deep Neural Network (DNN) learning during training and some hints for how the results can be applied to improve the efficiency of deep learning. + +One of the observations from the paper [2] is that DNN training involves two distinct phases: First, the network trains to fully represent the input data and minimize the error in generalization and then, it learns to forget the irrelevant details by compressing the representation of the input. + +Another observation is a potential explanation for why transfer learning works when the top most layers are retrained for similar tasks, but I skip it for further work as it is beyond the scope of this current study, although it has been mentioned while discussing the Asymptotic Equipartition Property. + +From an engineering standpoint, the papers provide a very relevant theory which could help answer questions such as, if the trained model is optimal or not, if there exist any design principles for such machines, or if the layers or neurons represent anything and if the algorithms we use can be improved or not. + +The following paper contributes via providing an overview of the fundamentals of Information Theory required to study these papers, followed by a detailed summary of the work related to the Information Plane and Deep Learning and finally a replication study containing a re implementation study and its results and comparison with the results of the original authors as well as the critics of the paper. The goal of the paper was to dive into cutting edge research and implement the state of the art and verify the results of both the original authors \[2\] \[3\] as well as the critique [4] submitted to ICML 2018. + +## **2. Concepts from Information Theory** + +### **2.1 Markov Chain** + +A Markov process is a “memory-less” (also called “Markov Property”) stochastic process. A Markov chain is a type of Markov process containing multiple discrete states. That is being said, the conditional probability of future states of the process is only determined by the current state and does not depend on the past states. [5] + +### **2.2 KL Divergence** + +KL divergence measures how one probability distribution {p}diverges from a second expected probability distribution {q}. It is asymmetric. [5] + +D_{KL}(p \| q) = \sum_x p(x) \log \frac{p(x)}{q(x)} dx  = - \sum_x p(x)\log q(x) + \sum_x p(x)\log p(x)  = H(P, Q) - H(P)  + + {D_{KL}}achieves the minimum zero when {p(x) == q(x)}everywhere. + +### **2.3 Mutual Information** + +Mutual information measures the mutual dependence between two variables. It quantifies the “amount of information” obtained about one random variable through the other random variable. Mutual information is symmetric. [5] + +I(X;Y) = D_{KL}\left[~p(x,y) ~\|~ p(x)p(y)~\right]  = \sum_{x \in X, y \in Y} p(x, y) \log\left(\frac{p(x, y)}{p(x)p(y)}\right)  = \sum_{x \in X, y \in Y} p(x, y) \log\left(\frac{p(x|y)}{p(x)}\right)  = H(X) - H(X|Y)  + +### **2.4 Data Processing Inequality** + +For any markov chain: {X \rightarrow Y \rightarrow Z}, we would have [5] + +

+ \displaystyle I(X; Y) \geq I(X; Z) \ \ \ \ \ (1) +

+ +A deep neural network can be viewed as a Markov chain, and thus when we are moving down the layers of a DNN, the mutual information between the layer and the input can only decrease. + +### **2.5 Reparameterization Invariance** + +For two invertible functions {\phi}, {\psi}, the mutual information still holds: + +

+ \displaystyle I(X; Y) = I(\phi(X); \psi(Y)) \ \ \ \ \ (2) +

+ +  + +For example, if we shuffle the weights in one layer of DNN, it would not affect the mutual information between this layer and another. + +### **2.6 The Asymptotic Equipartition Property** + +This theorem is a simple consequence of the weak law of large numbers. It states that if a set of values {X_1, X_2, ..., X_n}is drawn independently from a random variable X distributed according to {P(x)}, then the joint probability {P(X_1,...,X_n)}satisfies [5] + +

+ \displaystyle \frac{-1}{n} \log_{2}{P(X_1,X_2,...,X_n)} \rightarrow H(X) \ \ \ \ \ (3) +

+ +where {H(X)}is the entropy of the random variable {X}. + +Although, this is out of bounds of the scope of this work, for the sake of completeness I would like to mention how the authors of [2] use this to argue that for a typical hypothesis class the size of {X}is approximately {2^{H(X)}}. Considering an {\epsilon}-partition, {T_\epsilon}, on {X}, the cardinality of the hypothis class, {|H_\epsilon|}, can be written as {|H_\epsilon| \sim 2^{|X|} \rightarrow 2^{|T_\epsilon|}}and therefore we have, + +

+ \displaystyle \vert T_\epsilon \vert \sim \frac{2^{H(X)}}{2^{H(X \vert T_\epsilon)}} = 2^{I(T_\epsilon; X)} \ \ \ \ \ (4) +

+ +Then the input compression bound, + +

+ \displaystyle \epsilon^2 < \frac{\log|H_\epsilon| + \log{1/\delta}}{2m} \ \ \ \ \ (5) +

+ +becomes, + +

+ \displaystyle \epsilon^2 < \frac{2^{I(T_\epsilon; X)} + \log{1/\delta}}{2m} \ \ \ \ \ (6) +

+ +The authors then further develop this to provide a general bound on learning by combining it with the Information Bottleneck theory [6]. + +## **3. Information Theory of Deep Learning** + +### **3.1 DNN Layers as Markov Chain** + +In supervised learning, the training data contains sampled observations from the joint distribution of {X}and {Y}. The input variable {X}and weights of hidden layers are all high-dimensional random variable. The ground truth target {Y}and the predicted value {\hat{Y}}are random variables of smaller dimensions in the classification settings. Moreover, we want to efficiently learn such representations from an empirical sample of the (unknown) joint distribution {P(X,Y)}, in a way that provides good generalization. + +
The structure of a deep neural network, which consists of the target label {Y}, input layer {X}, hidden layers {h_1,\dots,h_m}and the final prediction {\hat{Y}}. (Image Source: Tishby 2015)[3]
If we label the hidden layers of a DNN as {h_1,h_2,...,h_m}as in Figure above, we can view each layer as one state of a Markov Chain: {h_i \rightarrow h_{i+1}}. According to DPI, we would have: + +H(X) \geq I(X; h_1) \geq I(X; h_2) \geq ... \geq I(X; h_m) \geq I(X; \hat{Y})  I(X; Y) \geq I(h_1; Y) \geq I(h_2; Y) \geq ... \geq I(h_m; Y) \geq I(\hat{Y}; Y)  + +A DNN is designed to learn how to describe {X}to predict {Y}and eventually, to compress {X}to only hold the information related to {Y}. Tishby describes this processing as “successive refinement of relevant information” [3]. + +
The DNN layers form a Markov chain of successive internal representations of the input layer {X}. (Image Source: Schwartz-Ziv and Tishby 2017 [2])
As long as these transformations on {X}in {Y}about {\hat{Y}}preserve information, we don’t really care which individual neurons within the layers encode which features of the input. This can be captured by finding the mutual information of {T}with respect to {X}and {\hat{Y}}. Schwartz-Ziv and Tishby (2017) treat the whole layer, {T}, as a single random variable, charachterized by {P(T|X)}and {P(Y|T)}, the encoder and decoder distributions respectively, and use the Reparameterization Invariance given in [(2)][1] to argue that since layers related by invertible re-parameterization appear in the same point, each information path in the plane corresponds to many different DNN’s, with possibly very different architectures. [3] + +I(X; Y) \geq I(T_1; Y) \geq I(T_2; Y) \geq ... \geq I(T_k; Y) \geq I(\hat{Y}; Y)  H(X) \geq I(X; T_1) \geq I(X; T_2) \geq ... \geq I(X; T_k) \geq I(X; \hat{Y})  + +This is to say that after training, when the trained network, the new input passes through the layers which form a Markov Chain, to the predicted output {\hat{Y}}. The information plane has been discussed further in Section [3][2]. + +### **3.2 The Information Plane** + + + +Using the representation in Fig. [3][3], the encoder and decoder distributions; the encoder can be seen as a representation of {X}, while the decoder translates the information in the current layer to the target output {Y}. + +The information can be interpreted and visualized as a plot between the encoder mutual information {I(X;T_{i})}and the decoder mutual information {I(T_{i};Y)}; + +
The encoder vs decoder mutual information of DNN hidden layers of 50 experiments. Different layers are color-coded, with green being the layer right next to the input and the orange being the furthest. There are three snapshots, at the initial epoch, 400 epochs and 9000 epochs respectively. (Image source: Shwartz-Ziv and Tishby, 2017) [2])
Each dot in Fig. [3][4]. marks the encoder/ decoder mutual information of one hidden layer of one network simulation (no regularization is applied; no weights decay, no dropout, etc.). They move up as expected because the knowledge about the true labels is increasing (accuracy increases). At the early stage, the hidden layers learn a lot about the input X, but later they start to compress to forget some information about the input. Tishby believes that “the most important part of learning is actually forgetting”. [7] + +Early on the points shoot up and to the right, as the hidden layers learn to retain more mutual information both with the input and also as needed to predict the output. But after a while, a phase shift occurs, and points move more slowly up and to the left. + +
The evolution of the layers with the training epochs in the information plane, for different training samples. On the left – 5% of the data, middle – 45% of the data, and right – 85% of the data. The colors indicate the number of training epochs with Stochastic Gradient Descent. (Image source: Shwartz-Ziv and Tishby, 2017) [2])
Schwartz-Ziv and Tishby name these two phases Empirical eRror Minimization (ERM) and the phase that follows as the Representation Compression Phase. Here the gradient means are much larger than their standard deviations, indicating small gradient stochasticity (high SNR). The increase in {I_Y}is what we expect to see from cross-entropy loss minimization. The second diffusion phase minimizes the mutual information {I(X;T_i)}– in other words, we’re discarding information in X that is irrelevant to the task at hand. + +A consequence of this is pointed out by Schwartz-Ziv and Tishby indicating that there is a huge number of different networks with essentially optimal performance, and attempts to interpret single weights or even single neurons in such networks can be meaningless due to the randomised nature of the final weights of the DNN. [2] + +## **4. Experimental Setup and Results** + +### **4.1. Experimental Setup** + +The experiments were done on a network with 7 fully connected hidden layers, and widths 12-10-7-5-4-3-2 neurons, similar to what had been done in the original paper. The network is trained using Stochiastic Gradient Descent and cross-entropy loss function, but no other explicit regularization. The activation functions are hyperbolic tangent in all layers but the final one, where a sigmoid function is used. The bin count was taken to be 24 for the mutual information calculation. Off the shelf python libraries such as Tensorflow[8], NumPy[9], ScikitLearn[9] were used for the re-implementation as described by the original paper. + +Variations were made to the activation function to Rectified Linear Unit (ReLu) and Sigmoidal to verify the results of a recent paper [4] which is under open review for ICLR 2018 under the same conditions. + +### **4.2. Results**
+ +
Loss Function observed with a network having layers of 12-10-7-5-4-3-2 widths when trained with tanh as activation function. The X-Axis represents training losses and the Y-Axis represents steps
Information Plane observed with a network having layers of 12-10-7-5-4-3-2 widths when trained with tanh as activation function. The X-Axis represents {I(X;T)}and the Y-Axis represents {I(T;Y)}
+ +The results were plotted using the experimental setup and tanh as the activation function. It is important to note that it’s the lowest layer which appears in the top-right of this plot (maintains the most mutual information), and the top-most layer which appears in the bottom-left (has retained almost no mutual information before any training). So the information path being followed goes from the top-right corner to the bottom-left traveling down the slope. + +Early on the points shoot up and to the right, as the hidden layers learn to retain more mutual information both with the input and also as needed to predict the output. But after a while, a phase shift occurs, and points move more slowly up and to the left.
+ +
Loss Function observed with a network having layers of 12-10-7-5-4-3-2 widths when trained with ReLu as activation function. The X-Axis on the left represents training losses and the Y-Axis represents steps. The X-Axis represents for the figure on the right {I(X;T)}and the Y-Axis represents {I(T;Y)}
Information Plane observed with a network having layers of 12-10-7-5-4-3-2 widths when trained with ReLu as activation function. The X-Axis on the left represents training losses and the Y-Axis represents steps. The X-Axis represents for the figure on the right {I(X;T)}and the Y-Axis represents {I(T;Y)}
Information Plane observed with a network having layers of 12-10-7-5-4-3-2 widths when trained with Sigmoid as activation function. The X-Axis on the left represents training losses and the Y-Axis represents steps. The X-Axis represents for the figure on the right {I(X;T)}and the Y-Axis represents {I(T;Y)}
Loss Function observed with a network having layers of 12-10-7-5-4-3-2 widths when trained with Sigmoid as activation function. The X-Axis on the left represents training losses and the Y-Axis represents steps. The X-Axis represents for the figure on the right {I(X;T)}and the Y-Axis represents {I(T;Y)}
+ +### **4.3. Analysis** + +The results of using the hyperbolic tan function (tanh) as the choice for activation function corresponds with results obtained by Schwartz-Ziv and Tishby (2017) [2]. Although, the same can’t be said about the results obtained when ReLu or Sigmoid function was used as the activation function. The network seems to stabilize much faster when trained with ReLu but does not show any of the charachteristics mentioned by Schwartz-Ziv and Tishby (2017) such as compression and diffusion in the information plane. This is in line with [4], although the authors have commented in the open review [4] that they have used other strategies for binning during MI calculation which give correct results. The compression and diffusion phases can be clearly seen in Fig. [4][5]. The corresponding plot of the loss function also shows that the DNN actually learned the input variable {X}with respect to the ground truth {Y}. + +## References + +[1] Y. LeCun, Y. Bengio, and G. E. Hinton, “Deep learning,” Nature, vol. 521, no. 7553, pp. 436–444, 2015. [Online]. Available: http://sci-hub.tw/10.1038/nature14539 + +[2] R. Shwartz-Ziv and N. Tishby, “Opening the black box of deep neural networks via information,” CoRR, vol. abs/1703.00810, 2017. [Online]. Available: http://arxiv.org/abs/1703.00810 + +[3] N. Tishby and N. Zaslavsky, “Deep learning and the information bottleneck principle,” CoRR, vol. abs/1503.02406, 2015. [Online]. Available: http://arxiv.org/abs/1503.02406 + +[4] Anonymous, “On the information bottleneck theory of deep learning,” International Conference on Learning Representations, 2018. [Online]. Available: https://openreview.net/forum?id=ry WPG-A- + +[5] T. M. Cover and J. A. Thomas, Elements of Information Theory (Wiley Series in Telecommunications and Signal Processing). Wiley-Interscience, 2006. + +[6] N. Tishby, F. C. N. Pereira, and W. Bialek, “The information bottleneck method,” CoRR, vol. physics/0004057, 2000. [Online]. Available: http://arxiv.org/abs/physics/0004057 + +[7] L.Weng. Anatomize deep learning with informa-tion theory. [Online]. Available: https://lilianweng.github.io/lillog/2017/09/28/anatomize-deep-learning-with-information-theory.html + +[8] M. Abadi, A. Agarwal, P. Barham, E. Brevdo, Z. Chen, C. Citro, G. S. Corrado, A. Davis, J. Dean, M. Devin, S. Ghemawat, I. Goodfellow, A. Harp, G. Irving, M. Isard, Y. Jia, R. Jozefowicz, L. Kaiser, M. Kudlur, J. Levenberg, D. Mané, R. Monga, S. Moore, D. Murray, C. Olah, M. Schuster, J. Shlens, B. Steiner, I. Sutskever, K. Talwar, P. Tucker, V. Vanhoucke, V. Vasudevan, F. Viégas, O. Vinyals, P. Warden, M. Wattenberg, M. Wicke, Y. Yu, and X. Zheng, “TensorFlow: Large-scale machine learning on heterogeneous systems,” 2015, software available from tensorflow.org. [Online]. Available: https://www.tensorflow.org/ + +[9] E. Jones, T. Oliphant, P. Peterson et al., “SciPy: Open source scientific tools for Python,” 2001–, [Online; accessed ¡today¿]. [Online]. Available: http://www.scipy.org/ + +[10] S. Prabh. Prof. shashi prabh homepage. [Online]. Available: https://sites.google.com/a/snu.edu.in/shashi-prabh/home + +[11] N. Wolchover. New theory cracks open the black box of deep learning — quanta magazine. Quanta Magazine. [On-line]. Available: https://www.quantamagazine.org/new-theory-cracks- + +open-the-black-box-of-deep-learning-20170921/ + +[12] Machine learning subreddit. [Online]. Available: https://www.reddit.com/r/MachineLearning/ + +This work has been undertaken in the Course Project component for the elective titled “Information Theory (Fall 2017)” [https://sites.google.com/a/snu.edu.in/shashi-prabh/teaching/information-theory-2017] at Shiv Nadar University under the guidance of Prof. Shashi Prabh + +  + +  + + [1]: #RepInv + [2]: #ssecIP + [3]: #encdec + [4]: #infoplane + [5]: #FigTanhIP \ No newline at end of file diff --git a/content/blog/2017-12-21-setting-up-python-on-spacemacs-and-using-pyenv-to-use-python3.md b/content/blog/2017-12-21-setting-up-python-on-spacemacs-and-using-pyenv-to-use-python3.md new file mode 100644 index 0000000..f2f1f17 --- /dev/null +++ b/content/blog/2017-12-21-setting-up-python-on-spacemacs-and-using-pyenv-to-use-python3.md @@ -0,0 +1,43 @@ +--- +title: Setting up Python on Spacemacs and using Pyenv to use Python3 +author: rhnvrm +type: post +date: 2017-12-21T12:55:34+00:00 +url: blog/2017/12/21/setting-up-python-on-spacemacs-and-using-pyenv-to-use-python3/ +categories: + - foss + - notes + - uncategorized +tags: + - fedora + - python + - spacemacs + +--- +After diving into Spacemacs yesterday, I was able to setup LaTeX properly. Only SyncTeX is left to be setup although, right now I can live without it. After tweeting about it, I got a reply about setting up Python on Spacemacs. I had installed the python layer but had not tested it. There was no hitch, although I faced a small issue with having python2 as well as python3 on my system. Emacs recognized only python2. I ended up finding about pyvenv which I have discussed below. Also, am optimistic that I will be able to setup Pipenv as well through pipenv.el that is available on GitHub by tomorrow. Also, have commited my .spacemacs file to my dotfiles repository on github. + +Getting started with the setup along with the basic packages etc. was easy by just adding the python layer into the `.spacemacs` file. Then, the only thing need to be done was install, by pressing `SPC-f-e-R`. I then tried to run a python interpreter in a new buffer by, going to the menu `SPC-SPC-` and typing `run-python.` After the `ipython` shell worked out fine, I decided to run a python file by entering one. Without any hitch, the python mode loaded and I could press `SPC-m-c-c` to run the file. + +The problem I mentioned above about the python versions came into my view when I ran a simple print function, which gave an error as I did not have any shebang on top of the file. This made me realize a potential problem in the future as Python development heavily depends upon virtual environments. Thankfully, the python layer had already added pyvenv and pyenv. Although, pyenv only listed one `system` version, and that too it was of python2. So to solve this, I ran the following: + +
pyenv virtualenv -p /usr/bin/python2 venv2
+pyenv virtualenv -p /usr/bin/python3 venv3
+
+ +  + +The \`-p\` flag is documented in the virtualenv docs as: + +> The Python interpreter to use, e.g., –python=python2.5 will use the python2.5 interpreter to create the new environment. The default is the interpreter that virtualenv was installed with (like <span class="pre">/usr/bin/python</span>) + +Afterwards, it was easy to change the environment inside emacs using `SPC-m-v-s` and choose `venv3` for using python3 instead of python2. Similarly, `-V` can be used instead of `-v` to set virtualenvs using directories. + +I’m looking forward to setting up the [Pipenv.el][1] to be able to use [pipenv][2] as well. + +**References:** + + * + * + + [1]: https://github.com/pwalsh/pipenv.el + [2]: http://pipenv.readthedocs.io/en/latest/ \ No newline at end of file diff --git a/content/blog/2018-02-23-featured-on-googles-instagram-instagram.md b/content/blog/2018-02-23-featured-on-googles-instagram-instagram.md new file mode 100644 index 0000000..37e022f --- /dev/null +++ b/content/blog/2018-02-23-featured-on-googles-instagram-instagram.md @@ -0,0 +1,93 @@ +--- +title: Featured on Google’s Instagram +author: rhnvrm +type: post +date: 2018-02-23T15:07:54+00:00 +url: blog/2018/02/23/featured-on-googles-instagram-instagram/ +client-modified: + - "1521385675" +categories: + - misc + - projects + - uncategorized +format: aside + +--- +Featured on Google’s Instagram + + + +
+ +
\ No newline at end of file diff --git a/content/blog/2018-03-18-extract-filenames-without-their-extensions.md b/content/blog/2018-03-18-extract-filenames-without-their-extensions.md new file mode 100644 index 0000000..ca9188f --- /dev/null +++ b/content/blog/2018-03-18-extract-filenames-without-their-extensions.md @@ -0,0 +1,19 @@ +--- +title: Extract filenames without their extensions… +author: rhnvrm +type: post +date: 2018-03-18T15:03:10+00:00 +url: blog/2018/03/18/extract-filenames-without-their-extensions/ +client-modified: + - "1521385389" +categories: + - tutorials + - uncategorized +tags: + - linux +format: aside + +--- +Extract filenames without their extensions and put it in the clipboard + +
ls -C | awk -F"." '{print $1}' | xclip -selection c
\ No newline at end of file diff --git a/content/blog/2018-03-20-today-i-integrated-the-wordpress.md b/content/blog/2018-03-20-today-i-integrated-the-wordpress.md new file mode 100644 index 0000000..c55dd89 --- /dev/null +++ b/content/blog/2018-03-20-today-i-integrated-the-wordpress.md @@ -0,0 +1,14 @@ +--- +title: Today I integrated the WordPress… +author: rhnvrm +type: post +date: 2018-03-20T18:01:32+00:00 +url: blog/2018/03/20/today-i-integrated-the-wordpress/ +client-modified: + - "1521568892" +categories: + - uncategorized +format: aside + +--- +Today I integrated the WordPress API into my Homepage to display my projects. It now uses an Ajax call to fetch the latest posts in the Project category. Also, I removed the font-awesome icons which were messing up the profile links. \ No newline at end of file diff --git a/content/blog/2018-05-11-genie-the-voice-enabled-coding-companion-winner-dell-intern-hackathon.md b/content/blog/2018-05-11-genie-the-voice-enabled-coding-companion-winner-dell-intern-hackathon.md new file mode 100644 index 0000000..b715f16 --- /dev/null +++ b/content/blog/2018-05-11-genie-the-voice-enabled-coding-companion-winner-dell-intern-hackathon.md @@ -0,0 +1,18 @@ +--- +title: Genie – The Voice Enabled Coding Companion – Winner Dell Intern Hackathon +author: Rohan Verma +type: post +date: 2018-05-11T14:27:21+00:00 +url: blog/2018/05/11/genie-the-voice-enabled-coding-companion-winner-dell-intern-hackathon/ +categories: + - projects +tags: + - alexa + - hackathon + - productivity + - python + +--- + + +Genie is a Voice Assistant made up of three agents who talk to you and help you automate software engineering tasks. Watch the video to understand what it can do for you. \ No newline at end of file diff --git a/content/blog/2018-05-11-my-personal-opinion-about-learning.md b/content/blog/2018-05-11-my-personal-opinion-about-learning.md new file mode 100644 index 0000000..5df02bb --- /dev/null +++ b/content/blog/2018-05-11-my-personal-opinion-about-learning.md @@ -0,0 +1,18 @@ +--- +title: My personal opinion about learning frameworks +author: Rohan Verma +type: post +date: 2018-05-11T14:19:01+00:00 +url: blog/2018/05/11/my-personal-opinion-about-learning/ +client-modified: + - "1526048340" +categories: + - uncategorized +format: aside + +--- +My personal opinion about learning specific topics and frameworks is that it is not required to be done. In fact, it is only due to our education that we end up learning frameworks in the “learn first – then apply” kind of way. I would suggest trying a different approach. + +Decide on what you want to automate. What I mean by this is think of your day to day activities that you do online which you can automate. After you have found a problem (you can also try to solve others problems), sit down and list down what tools you think might help you to solve said problem. It could be a simple python script. After you have written the script, think of how you can make it a product by having a User Interface. A simple web interface can be created using Flask that runs the script you wrote on the press of a button. Finally, you will want to deliver this product to users, for which you can use Heroku/Digital Ocean/Openshift etc. + +In this way, you will always be motivated to find the solution and not waste much time in reading through things that will be essentially off-topic to you. \ No newline at end of file diff --git a/content/blog/2018-05-16-reviving-an-old-samsung-n150-netbook-and-making-it-a-solid-dev-environment.md b/content/blog/2018-05-16-reviving-an-old-samsung-n150-netbook-and-making-it-a-solid-dev-environment.md new file mode 100644 index 0000000..365537c --- /dev/null +++ b/content/blog/2018-05-16-reviving-an-old-samsung-n150-netbook-and-making-it-a-solid-dev-environment.md @@ -0,0 +1,56 @@ +--- +title: Reviving an old Samsung N150 Netbook and making it a solid Dev Environment +author: Rohan Verma +type: post +date: 2018-05-16T14:51:23+00:00 +url: blog/2018/05/16/reviving-an-old-samsung-n150-netbook-and-making-it-a-solid-dev-environment/ +categories: + - foss + - notes + - xfce +tags: + - archlinux + - foss + - gnu + - linux + - productivity + - xfce + +--- +I had an old Samsung N150 netbook lying around in my parent’s house. It was an amazing netbook and I remember fondly using it when my parents were not using it to browse the internet and sometimes even use it for school work. It came with Windows Vista if I recall correctly but I had installed Windows XP service pack 3 on it because as we know, Vista sucked! Well, the netbook was very solid, it even ran small games such as Fifa Manager etc and came with a solid keyboard, ethernet and VGA as well for connecting to a big screen. Although, its current state is pretty dismal with Avast Antivirus beeping every other second with a “Threat has been detected” alert as it is riddled with loads of russian malware. + +After thinking a lot, I decided to install Arch linux using Anarchy Linux as I always wanted to have an Arch machine. I have only ever used it before on my previous laptop but had again reverted to Fedora on it a few days later as I could not upgrade that often on University internet. + +The first step was to download Anarchy from https://anarchy-linux.org/download/ + +> ## Anarchy Linux is a distribution aimed at bringing the Linux revolution to the world. We believe that Linux is the way of the future for desktop computing and provide you with a platform to install a custom Arch based operating system just the way you like. Anarchy Linux is intended for both novice and advanced users alike. + +To write to the USB drive, I used: + +`sudo dd if=anarchy-1.0.0-x86_64.iso of=/dev/sdb1 bs=4M && sync` + +The boot sequence worked properly and opened the Anarchy boot screen. I selected the option to start the live environment to start the installer. The installer however failed to start the GUI installer and instead started the text based installer. However, the experience in my opinion was much better than most GUI installers I have used like Anaconda for Fedora. The only thing that comes to mind is that one should connect to the wifi first before starting the installer using wifi-menu. Otherwise package installation will probably be something that would have to be done after booting for the first time. + +My first attempt failed, I had selected the option to download a few custom packages like text editors but their download failed for some reason and the whole process had to be restarted. The download of around 700 MB was wasted along with 1 hour. In my second attempt I went with just the default packages and the download size came to be around 396 MB. + +The problem, I figured, was due to a “improperly signed by the maintainer” (https://plus.google.com/108897040723051595529/posts/M3REzAKNWCf) on the numix circle package. I could not find the solution, but I tried to disable the sign checking by setting SigLevel to Never from Required in the pacman.conf options. This did not work and then I decided that it might be more suitable to boot into the OS first then try to solve the issue later. So I decided to skip installation of the DE as the failiure was happening with that. But even this did not work out. + +What I figured was happening was nothing but the Anarchy installer failing to pacstrap as it did not retry the downloads which timedout. + +None of this worked so I decided to do a manual install using Arch Linux ISO, as I had used that before successfully. I also knew that pacstrap retried the downloads instead of giving an error. + +The steps I followed are given in Arch Wiki (https://wiki.archlinux.org/index.php/installation_guide) + +We have to install the sudo package. It allows using + +`pacman -S sudo` + +Then run visudo command and add your user to the sudoers. + +`rhnvrm ALL=(ALL) ALL` + +The next step was to install XFCE4 and XFCE4 Goodies. + +`pacman -S xfce4 xfce4-goodies` + +After this, I started to set up the machine according to my liking. \ No newline at end of file diff --git a/content/blog/2018-06-07-emacs-starts-a-bit-slow.md b/content/blog/2018-06-07-emacs-starts-a-bit-slow.md new file mode 100644 index 0000000..6f3bc08 --- /dev/null +++ b/content/blog/2018-06-07-emacs-starts-a-bit-slow.md @@ -0,0 +1,16 @@ +--- +title: Emacs starts a bit slow… +author: Rohan Verma +type: post +date: 2018-06-07T10:11:52+00:00 +url: blog/2018/06/07/emacs-starts-a-bit-slow/ +client-modified: + - "1528366312" +categories: + - uncategorized +format: aside + +--- +Emacs starts a bit slow but it can be started as a daemon + +
emacsclient -c -n -e '(switch-to-buffer nil)'
\ No newline at end of file diff --git a/content/blog/2018-07-30-functional-options-for-testing-without-mocks-in-golang.md b/content/blog/2018-07-30-functional-options-for-testing-without-mocks-in-golang.md new file mode 100644 index 0000000..47e076d --- /dev/null +++ b/content/blog/2018-07-30-functional-options-for-testing-without-mocks-in-golang.md @@ -0,0 +1,101 @@ +--- +title: Functional Options for testing without mocks in Golang +author: Rohan Verma +type: post +date: 2018-07-30T16:55:48+00:00 +url: blog/2018/07/30/functional-options-for-testing-without-mocks-in-golang/ +categories: + - notes +tags: + - api + - golang + - notes + +--- +Suppose you have a HTTP request to be sent but don’t care about the result or errors. This request is sent through a function which is usually called inside a goroutine and is not in any way a core aspect of your main logic. The only important part is forming the actual request and the payload. When you wrote this function, you did not write tests as it would be a pain to make the function return something and check it. Now that the core component is completed, you want to test that the request formed is actually in fact created properly and abides by a small set of rules expected by the reader of the payload packet. + +Usually, structs are created with Option structs which hold parameters which are used inside New() constructors. These allow reducing the configurations down to initializing one config struct which can be set by the caller. Although, it is useful for the API creator, it can become cumbersome for the API user. As pointed out by [Dave Cheney][1], it obfuscates the API and causes problems with defaults. + +Another way is to use Functional Options, for example + +

+    type Server struct {
+    	logger *logrus.Logger // optional
+    	store databaste.Store // required
+    }
+    
+    type ServerOption func(Server) Server
+    
+    func WithLogger(logger *logrus.Logger) ServerOption {
+    	return func(s Server) Server {
+    		s.logger = logger
+    		return s
+    	}
+    }
+    
+    func NewServer(store database.Store, options ...ServerOption) *Server {
+    	s := Server{store: store}
+    	for _, option := range options {
+    		s = option(s)
+    	}
+    	return &s
+    }
+    
+    func main() {
+    	myServer := NewServer(myStore, WithLogger(myLogger))
+    }
+
+ +In the above example, we can set the logger without having to depend on config structs and obfuscating the API. + +Now that we have potentially solved configuration issues, we can move on to testing. To avoid writing mock functions, we can inject a function that actually performs the request. This way, the default method will be to use the actual implementation but the test can inject a function which simply returns the data we want to check in a way that would be easier for us to test with. + +

+// app.go
+// WithRequestSender sets the RequestSender for MyStruct.
+func WithRequestSender(fn func([]byte, *MyStruct)) Option {
+  return func(f *MyStruct) {
+    f.RequestSender = fn
+  }
+}
+
+// app_Test.go
+func TestMyStruct_save(t *testing.T) {
+  var result string
+
+  getResult := func(s []byte, p *MyStruct) {
+    result = string(s)
+  }
+  p := New(
+    WithLogger(log.New(os.Stdout, "TEST: ", log.Ldate|log.Ltime|log.Lshortfile)),
+    WithQueueSize(1000),
+    WithRequestSender(getResult),
+  )
+
+  Convey("Given some Content is created with some initial values", t, func() {
+    s := Content{
+      Token: 123,
+    }
+    Convey("When the struct is inserted into the queue and save is called", func() {
+      q := *p.GetFromQueue()
+      q <- s
+      p.save()
+      Convey("Then the result created by struct to be sent to endpoint", func() {
+        Convey("The result should begin with [", func() {
+          So(result[0], ShouldEqual, '[')
+        })
+        Convey("The result should end with ]", func() {
+          So(result[len(result)-1], ShouldEqual, ']')
+        })
+        Convey("The result should contain statement", func() {
+          So(result, ShouldContainSubstring, string(MyStmt))
+        })
+      })
+    })
+  })
+}
+
+ +The above way, enables us to check data that might be coming to us in some convoluted way without ever having to write complicated unreadable code or having to modify much of the actual implementation. + + [1]: https://dave.cheney.net/2014/10/17/functional-options-for-friendly-apis \ No newline at end of file diff --git a/content/blog/2018-08-01-rewriting-lyric-api-in-golang.md b/content/blog/2018-08-01-rewriting-lyric-api-in-golang.md new file mode 100644 index 0000000..5b85fab --- /dev/null +++ b/content/blog/2018-08-01-rewriting-lyric-api-in-golang.md @@ -0,0 +1,31 @@ +--- +title: Rewriting Lyric API in Golang +author: Rohan Verma +type: post +date: 2018-08-01T19:10:39+00:00 +url: blog/2018/08/01/rewriting-lyric-api-in-golang/ +categories: + - notes +tags: + - golang + - js + - lyrics + - music + - node + - spotify + +--- +I had originally written a [Lyric API][1] as a hobby project way back using Node. I published it on github as a combination of API server hosted on [heroku][2] along with a library hosted on [NPM][3]. It still gets 50 downloads a week and the hosted [heroku API server][2] is actually used by many people even though it offers little to no functionality. I was recently looking at [wtf dashboard][4] and even contributed a [small patch][5] to it. [wtf][4] is written in Go and I am using it daily. I want to build a widget for Spotify on the dashboard. So I thought having lyrics was going to be very useful for this widget as I could display the current playing song on the widget and below it, the lyrics. + +A Go API for connecting with the Spotify Web API is already available but for getting the lyrics, I decided that since [Lyric API][1] I had written in Node was so small that I could essentially rewrite it in golang in less than a day. + +Voila! [Lyrics API Go][6] is now available with two providers at the moment (more than the what was initially in the Node project). I plan to add Genius as another provider soon. + +After that, the major work left would be to write a Current Song Fetcher using the Spotify Web API and based on the artist and song name, calling [Lyrics API Go][6] to fetch the lyrics and write the data to bytes and display it on the widget. + + [1]: https://github.com/rhnvrm/lyric-api + [2]: https://lyric-api.herokuapp.com/api/ + [3]: https://www.npmjs.com/package/lyric-get + [4]: https://github.com/senorprogrammer/wtf + [5]: https://github.com/senorprogrammer/wtf/pull/250 + [6]: https://github.com/rhnvrm/lyric-api-go \ No newline at end of file diff --git a/content/blog/2018-08-20-automate-fast-download-of-a-large-files-through-ftp.md b/content/blog/2018-08-20-automate-fast-download-of-a-large-files-through-ftp.md new file mode 100644 index 0000000..458e6ad --- /dev/null +++ b/content/blog/2018-08-20-automate-fast-download-of-a-large-files-through-ftp.md @@ -0,0 +1,14 @@ +--- +title: Automate fast download of a large files through FTP +author: Rohan Verma +type: post +date: 2018-08-20T06:27:08+00:00 +url: blog/2018/08/20/automate-fast-download-of-a-large-files-through-ftp/ +categories: + - notes +tags: + - linux + - productivity + +--- +`lftp -e 'set net:timeout 10; pget -n 10 BigFile.zip; bye' -u UserName,PassWord ftp://BigFiles.com` \ No newline at end of file diff --git a/content/blog/2018-09-25-whistle-project-winner-ethindia-2018-hackathon.md b/content/blog/2018-09-25-whistle-project-winner-ethindia-2018-hackathon.md new file mode 100644 index 0000000..fa80036 --- /dev/null +++ b/content/blog/2018-09-25-whistle-project-winner-ethindia-2018-hackathon.md @@ -0,0 +1,49 @@ +--- +title: Whistle Project – Winner EthIndia 2018 Hackathon +author: Rohan Verma +type: post +date: 2018-09-25T10:45:25+00:00 +url: blog/2018/09/25/whistle-project-winner-ethindia-2018-hackathon/ +categories: + - projects +tags: + - blockchain + - ethereum + - hackathon + +--- +
+ +
+ +
Demo Video
+ +Recently I took part in EthIndia Hackathon that took place in Bengaluru. This time I was participating without a team after a long time and made a team on the day of the event. All three of us (Ronak, Ayush and I) had a different idea of what we should work on but we finally came to a consensus on an idea that I had got from my current workplace’s CTO (Kailash Nadh). He had discussed a problem statement where he wanted to distribute asset holding information of people who have demised to their family members. This is a common task called the Dead Mans Switch which has been covered in a lot of movies as well as various experimental ideas. This was a big problem to solve, not only in size but also in the number of question marks it raises. After a lot of discussion with various mentors from the Ethereum community we decided and implemented upon the following idea by reducing the scope (instead of covering all assets, stick to only sending videos through IPFS) and deciding to skip the big issues like (missed heartbeats) + +Whistle – A platform to empower Whistleblowers and those who live under constant fear of death. Using smart contracts and the NuCypher proxy re-encryption MockNet we store the re-encrypted ipfs hash of the recorded video on the smart contract which can be interacted with using our heartbeat function interface which resets the decryption timer to a future date. In case a heartbeat is missed, the contract triggers emails containing the decrypted ipfs hash containing the video which can be streamed by anyone else. + +The best part about the event was the mentorship which guided us throughout the duration of the hackathon. We learnt that any good product, needs a few use cases which it is trying to solve and it should solve those perfectly. Based on those lines, we did a bit of research and found a bit more about this issue. Recently, Latifa Al Maktoum, a woman belonging to the royal family of Dubai, ran away and came to India as she was being tortured and drugged. She released a video on youtube, where she tells her viewers that if they are watching this, she might already be dead!
+ +
+ +
The full video
+ +Using a unique combination of heartbeat transactions and the NuCypher MockNet, we can enable them to allow decryption of the video only after their demise. We also integrated a small platform on top, through which whistleblowers can assign receipients such as news agencies. Then the recipients stored on the contract can be sent emails with the link of the data stored on IPFS once the video’s hash stored on the contract is decrypted using our method. A few other examples are people who may be related to influential families or groups, ex-members of cults, people stuck in legal loopholes, or someone who is just afraid that they may die before publishing their findings, such as a whistleblower. In India, there are multitudes of cases, one such example is the Vyapam scam where “[more than 40 people associated with the scam have died since the story broke in 2013][1]” many of whom were critical witnesses and whistleblowers whose testimony was lost due to their murder. Our platform, Whistle, hence enables users of our application, to anonymously, store information until their demise. + +We needed to define our users to allow us to reduce the scope of the product. Targeting people under immediate threats who may not be able to trust any centralized organization which could censor their message.   It is important for them to although, keep their message hidden until their demise, as then they can leverage this as a position. Through using our platform, the individual could essentially, release all the information even after their demise (checked by not sending a heartbeat message) by sending an email with the files stored on IPFS to all major news outlets. By limiting ourselves to whistleblowers, we were able to solidify our projects appeal. We decided that we wanted to empower such individuals and whistle blowers who live under a constant fear of death, to utilize the decentralized blockchain and store encrypted data on the blockchain. + +The most critical technology of our platform is the NuCypher network. Through this network, we are able to perform proxy reencryption and run a read only function written in our contract to detect the “is alive” criteria. The smart contract stores all the details required to securely decrypt such as the policy_id which is required by the NuCypher mocknet, along with a function that can be run by the mocknet to detect if the state on the chain is in agreement with our condition, that the last heartbeat should have been before the current time. (We update this whenever the user checks in with a time in the future). +We ran into a multitude of problems like understanding and going through the codebase of NuCypher Mocknet and the demos they shared. It was a challenging task but we are proud to be able to have implemented the architecture that allowed us to perform off the chain decryption based on a condition stored on chain. Being able to implement the heartbeat contract and the flow of required to perform the decryption only after the condition was met was interesting. Finally, interacting with smart contract deployed on private chain to make a consolidated product was in itself a challenge. We originally tried to use the embark platform and wanted to make a [_Status.im_][2] bot that would query for the heartbeat transaction directly through a message in the chat. But due to a multitude of reasons, such as deprecation of the _/debug_ console command we are not able to go through with this.   + +You can go through the following repositories to understand a bit more about the project: +https://github.com/siftbox/File-Encrypt-IPFS-Solidity +https://github.com/siftbox/File-Encrypt-IPFS-Platform +https://github.com/CapsLockHacks/nucypher-mocknet-api +https://github.com/Ronak-59/Alive.Network-Frontend/ + + + + + + [1]: https://www.firstpost.com/india/mystery-of-vyapam-scam-the-death-toll-keeps-increasing-in-indias-killer-scandal-2316888.html + [2]: http://Status.im \ No newline at end of file diff --git a/content/blog/2018-10-14-convolutional-neural-network-basics.md b/content/blog/2018-10-14-convolutional-neural-network-basics.md new file mode 100644 index 0000000..cbd7d47 --- /dev/null +++ b/content/blog/2018-10-14-convolutional-neural-network-basics.md @@ -0,0 +1,87 @@ +--- +title: Convolutional Neural Network Basics +author: Rohan Verma +type: post +date: 2018-10-14T15:54:42+00:00 +url: blog/2018/10/14/convolutional-neural-network-basics/ +categories: + - notes +tags: + - datascience + - deeplearning + - neuralnetwork + +--- +## Convolution + +It is a matrix operation in which we add each element with local neighbors with respect to the weight of the kernels. Mathematically, it is the element-wise product of each element of the kernel with the image-piece followed by a sum. These filters can be used to detect various things like edges etc.
+ +![][1]
+ +## Filters/Kernels + +Filters/Kernels capture features in their receptive field using matrices containing values (weights) with convolution. A higher result of this operation implies that the feature captured by the kernel is in the image, and a lower score implies the opposite. + +## Epochs + +A single epoch is a combination of one forward pass and a one backward pass through the network and the whole dataset has been covered. A single epoch is usually not enough and leads to underfitting. Too many epochs, would lead to a longer training time and also overfit to the data. + +## 1×1 Convolutions + +1×1 Convolutions are used to change the dimensionality of the the previous layer. It will take in x channels and not look at any neighbors and take the sum and change it into y channels. This is very useful, and for example, can be used after max pooling to reduce the z-dimensionality. + +## 3×3 Convolution
+ +![][2]
![][3]
+ +3×3 Convolutions are composed of 9 parameters. We tend to use them because they can be combined to have the same effect as higher area convolutions. Back to back application of 3×3 convolution would have the same effective receptive field as would a single 5×5 convolution and would also be faster as this is what has been optimized by modern day GPUs and TPUs. + +## Feature Maps + +Feature maps, also called activation maps, are the final output results of the activation function (such as ReLU or Sigmoid) applied on the values of a given filter or kernel. A higher activation corresponds to higher likelihood that a feature was found by the kernel in the image and a lower would imply it not being in the receptive field. + +## Feature Engineering + +In older concepts, people used to manually extract local features also called interest points. This used to utilize various algorithms which used to extract points in the image and would then be used to match similar ones in other images. For example,
+ +
+ +The above image shows ORB interest points and then matches these points for another image taken from another angle. + +Reference: [Image Feature Extraction and Matching Tutorial – Kaggle][4] + +## Activation Function + +The purpose of the activation function is to find a function that can take the input signal and squish them between $-1$ and $1$, and get an output signal. + +### Hyperbolic Tan function + +f(x) = \frac{1-exp(-2x)}{1+exp(-2x)}
+ +![][5]
+ +### Sigmoid + +f(x) = \frac{1}{1 + exp(-x)}
+ +![][6]
+ +### Rectified Linear Units + +R(x) = max(0,x) + +There are other modifications of ReLU like Leaky ReLU and randomized leaky ReLU.
+ +![][7]
+ +## Receptive Fields + +Receptive Field of a kernel is the region of the image which affects its result. For layers directly connected to the image, this may be a very small region of 3×3 but for higher layers this region increases as they combine multiple receptive fields below them. + + [1]: https://cdn-images-1.medium.com/max/1600/0*dRD6PhKOnnCIhz15.jpg + [2]: https://cdn-images-1.medium.com/max/600/1*1okwhewf5KCtIPaFib4XaA.gif + [3]: https://www.saama.com/wp-content/uploads/2017/12/01.jpg + [4]: https://www.kaggle.com/wesamelshamy/tutorial-image-feature-extraction-and-matching + [5]: https://cdn-images-1.medium.com/max/800/0*VHhGS4NwibecRjIa.png + [6]: https://cdn-images-1.medium.com/max/800/0*WYB0K0zk1MiIB6xp.png + [7]: https://cdn-images-1.medium.com/max/800/0*qtfLu9rmtNullrVC.png \ No newline at end of file diff --git a/content/blog/2018-11-19-streaming-audio-from-linux-to-android-using-pulseaudio-over-lan.md b/content/blog/2018-11-19-streaming-audio-from-linux-to-android-using-pulseaudio-over-lan.md new file mode 100644 index 0000000..2a9b71c --- /dev/null +++ b/content/blog/2018-11-19-streaming-audio-from-linux-to-android-using-pulseaudio-over-lan.md @@ -0,0 +1,32 @@ +--- +title: Streaming audio from Linux to Android using PulseAudio over LAN +author: Rohan Verma +type: post +date: 2018-11-19T19:50:35+00:00 +url: blog/2018/11/19/streaming-audio-from-linux-to-android-using-pulseaudio-over-lan/ +categories: + - notes +tags: + - android + - linux + +--- +Suppose you are in a situation where you want to watch a movie on your TV or monitor but don’t want to use speakers. Maybe you are looking to listen to an audio book stored on your laptop but don’t want to transfer it to your phone. Or you just want to buy an audio jack splitter. Look no further, PulseAudio to the rescue. + + +PulseAudio provides streaming via SimpleProtocol on TCP via a simple command. All you need to do is find the source and start streaming it. + +You can find the source by running this command: + +
pactl list | grep "Monitor Source"
+ +After this, you can run: + + +
pactl load-module module-simple-protocol-tcp rate=48000 format=s16le channels=2 source=<SOURCE> record=true port=<PORT (eg 8000)>
+ +Next, you will need to download PulseDroid, the apk can be found in the Github repository or you can use the following command to download it using wget: + +
wget https://github.com/dront78/PulseDroid/raw/master/bin/PulseDroid.apk
+ +Just enter the IP address of your machine (you can find it by running ifconfig) and the port you chose and press the Start button. \ No newline at end of file diff --git a/content/blog/2019-01-08-setting-so_reuseport-and-similar-socket-options-in-go-1-11.md b/content/blog/2019-01-08-setting-so_reuseport-and-similar-socket-options-in-go-1-11.md new file mode 100644 index 0000000..d2f3dc9 --- /dev/null +++ b/content/blog/2019-01-08-setting-so_reuseport-and-similar-socket-options-in-go-1-11.md @@ -0,0 +1,85 @@ +--- +title: Setting SO_REUSEPORT and similar socket options in Go 1.11 +author: Rohan Verma +type: post +date: 2019-01-08T12:38:24+00:00 +url: blog/2019/01/08/setting-so_reuseport-and-similar-socket-options-in-go-1-11/ +categories: + - notes +tags: + - golang + - networking + +--- +Go recently introduced a heavily requested feature that allows programmers to set socket options before accepting and creating connections. You can find a mention of this in [Go 1.11 Release Notes][1]. Although, not many have written on this and implementing this is a bit confusing due to a change in the way one has to implement this. So I decided to share this with others who might be interested in using this feature. + +By reading how support for this has been added, we can get an idea about how to go about implementing this. The release notes mention that a new [ListenConfig][2] type has been added. This type contains a Control function which needs to be implemented. This Control function should contain code to set the Socket Option. + +Let us see how one would start a UDP reader that performs a callback on receiving a packet. + +
type UDPOptions struct {
+	Address         string
+	MinPacketLength int
+	MaxPacketLength int
+}
+
+func StartUDPReader(opt UDPOptions, callback func([]byte)) {
+	addr, err := net.ResolveUDPAddr("udp", opt.Address)
+	if err != nil {
+		h.sysLog.Fatalf("address resoultion failed: %v", err)
+	}
+
+	conn, err := net.ListenUDP("udp", addr)
+	if err != nil {
+		h.sysLog.Fatalf("listen failed: %v", err)
+	}
+
+	packet := make([]byte, opt.MaxPacketLength)
+	for {
+		n, _, err := conn.ReadFromUDP(packet)
+		if err == nil && n >= opt.MinPacketLength && n <= opt.MaxPacketLength {
+			callback(packet)
+		}
+	}
+}
+ +This is how the reader would look after adding SO_REUSEPORT using the new way. + +
func StartUDPReader(opt UDPOptions, callback func([]byte)) {
+	lc := net.ListenConfig{
+		Control: func(network, address string, c syscall.RawConn) error {
+			var opErr error
+			err := c.Control(func(fd uintptr) {
+				opErr = unix.SetsockoptInt(int(fd), unix.SOL_SOCKET, unix.SO_REUSEPORT, 1)
+			})
+			if err != nil {
+				return err
+			}
+			return opErr
+		},
+	}
+
+	lp, err := lc.ListenPacket(context.Background(), "udp", opt.Address)
+	if err != nil {
+		h.sysLog.Fatalf("dial failed: %v", err)
+	}
+
+	conn := lp.(*net.UDPConn)
+	err = ipv4.NewPacketConn(conn).SetControlMessage(ipv4.FlagDst|ipv4.FlagInterface, true)
+	if err != nil {
+		h.sysLog.Fatalf("set control msg failed: %v", err)
+	}
+
+	packet := make([]byte, opt.MaxPacketLength)
+	for {
+		n, _, err := conn.ReadFromUDP(packet)
+		if err == nil && n >= opt.MinPacketLength && n <= opt.MaxPacketLength {
+			callback(packet)
+		}
+	}
+}
+ +Using this approach we can reuse the port and have zero downtime, between restarts by starting the new reader before stopping the currently running reader. + + [1]: https://golang.org/doc/go1.11#net + [2]: https://golang.org/pkg/net/#ListenConfig \ No newline at end of file diff --git a/content/blog/2019-02-23-.md b/content/blog/2019-02-23-.md new file mode 100644 index 0000000..44f1a84 --- /dev/null +++ b/content/blog/2019-02-23-.md @@ -0,0 +1,11 @@ +--- +title: t +author: rhnvrm +type: post +date: -001-11-30T00:00:00+00:00 +draft: true +url: blog/?p=459 +categories: + - notes + +--- diff --git a/content/blog/2019-03-17-a-review-of-the-siempo-launcher.md b/content/blog/2019-03-17-a-review-of-the-siempo-launcher.md new file mode 100644 index 0000000..7a450f3 --- /dev/null +++ b/content/blog/2019-03-17-a-review-of-the-siempo-launcher.md @@ -0,0 +1,70 @@ +--- +title: Three months of self inflicted digital pain and how it changed my habits – A review of Siempo Launcher +author: rhnvrm +type: post +date: 2019-03-17T20:13:13+00:00 +excerpt: "Last December, I decided to start an experiment and adopt a new launcher called Siempo apart from the OnePlus and Nova launcher that I'm used to since I started using Android. After three months, even though I have stopped using it, I have observed some changes and would like to share it with my readers who are also interested in digital well being. There has been a recent surge in people starting to restart blogging even though on closed platforms like Medium, but I guess it at least that is searchable outside from search engines, and hope to see more self hosted blogs following Hackernoon's recent split. Apart from this, people like me who were active social media users who now realize the downright issues with platforms like Facebook, Instagram, YouTube and Snapchat and their algorithms, and are no longer interested in being driven by them throughout their day. In this article I talk about my experience with it and how it changed my usage habits." +url: blog/2019/03/17/a-review-of-the-siempo-launcher/ +categories: + - notes +tags: + - android + - digital wellbeing + +--- +Last December, I decided to start an experiment and adopt a new launcher called [Siempo][1] apart from the OnePlus and Nova launcher that I’m used to since I started using Android. After three months, even though I have stopped using it, I have observed some changes and would like to share it with my readers who are also interested in digital well being. There has been a recent surge in people starting to restart blogging even though on closed platforms like Medium, but I guess it at least that is searchable outside from search engines, and hope to see more self hosted blogs following Hackernoon’s recent split. Apart from this, people like me who were active social media users who now realize the downright issues with platforms like Facebook, Instagram, YouTube and Snapchat and their algorithms, and are no longer interested in being driven by them throughout their day. In this article I talk about my experience with it and how it changed my usage habits. + +After surveying all the options, the only fully featured launcher (that was usable) I found was [Siempo][1]. An other notable mention was the Minimal Launcher but it did not have a free dark mode or even proper app search, making it unusable apart from phone calls and messages. I did not want to go to the extreme with this experiment so Siempo seemed to be the best option out there for Android. A few notable features of this app based on my experience are mentioned below. But before that, I must mention what I guess mostly the ideas on which the app is based on. + +Tristan Harris, a Former Design Ethicist at Google had around 2-3 years ago started a movement called _[Time Well Spent][2]_ [now called][2] _[Humane Tech][2]._ Nothing better to explain this than his TED Talk on “How a handful of tech companies control billions of minds every day”
+ +
+ +
+ +A few notable things from the website are copied below for reference + +
+

+ Unfortunately, what’s best for capturing our attention isn’t best for our well-being: +

+ +

+ Snapchat turns conversations into streaks, redefining how our children measure friendship.
Instagram glorifies the picture-perfect life, eroding our self worth.
Facebook segregates us into echo chambers, fragmenting our communities.
YouTube autoplays the next video within seconds, even if it eats into our sleep. +

+ + http://humanetech.com/problem +
+ +### Highlights about Siempo + +#### Nothing on the screen when you tap that power button + +There is nothing more that forms habits when you tap that power button and click that enticing app which you see that you had yourself originally placed on your home screen for convenience but now are more or less compelled to check since you have formed a habit to click it as soon as you press that physical button and the screen lights up. So this app displays nothing more than a blank screen with an optional text message which it calls an _Intention_ although I kept it as a blank screen as I find motivational quotes a bit gimmicky and silly but might be it useful for you if you feel it helps you stay motivated to use this launcher. + +#### Everything is Monochrome and Apps have no Logos + +Colorful app icons entice you to open them. When you swipe right in Siempo you will find your most useful apps utility apps as Icons (and not logos). But wait here is the catch, these are supposed to be set by you and are based on categories. You decide the app but not the categories that can be placed here, so you can have a food app but not “Uber Eats”, “Zomato” or “Swiggy”, similarly for for your travel app, you can select only one and the icon will be a generic cab icon. + +#### The essentials which don’t belong to a category + +There will be some apps which you use which don’t belong to a category from the first page, so you again swipe right and find the frequently used apps along with a search bar incase you forgot to add the app below. These are again not based on your usage analytics or recent usage, another tactic used to form habits but by you. But here is the catch with this page, no logos here as well for the pinned apps but no icon either, only the first letter of the app and the full name below it. + +#### The blacklisted ones (social media) + +And finally the biggest offenders of the attention economy. These are not even spared with fixed placement, and are randomly shuffled each time you swipe three times after you press your physical power button and unlock your screen making you _literally think twice before opening this app_. + +Apart from this, Siempo allows you to set a custom timer of a set duration after which you use these apps such as 15 minutes, all such apps cease to function and a full page block is shown asking you to reflect for one minute if you wish to continue using this app. + +### Reflections on this experiment + +Three months down with this, I have to admit my overall phone usage drastically declined. I stopped playing PUBG, reduced Netflix/Prime Video, nearly have stopped using Facebook (the last time I checked it was like a month ago), minimized Instagram usage to only view direct messages. Apart from this, I felt more energized throughout the day as I tended to sleep earlier although I woke up late as well, I ended up having more time on my hands as I had more energy. I ended up reading on the Kindle app or watching single small 5-10 youtube curated videos through twitter or reddit instead of a few 30 minute videos suggested by Youtube. It definitely had changed my usage patterns but I will have to caution others about a few reasons mentioned below, and would heavily suggest self moderation instead of changing their launcher. + + 1. **Absolute pain to use when you actually need your phone –** There were times when I needed to use my phone and could not use it properly especially when with friends and family and there were times when I actually needed these apps when the block would impact my productivity. + 2. **I started to use YouTube and Twitter** – These apps which I had marked as harmful, were now my most used apps even after going through trouble to use them. After the banner comes for 15 minutes of usage, I formed a habit of doing something else for a minute and reusing these two afterwards. My mind had adapted to the pain and eased it for these two. Earlier I used to use these less on my phone, but was using them more on my laptop back then so I guess it was just a move from not using the laptop for these apps. + 3. **App choices changed –** This might be relevant to those who are price wary especially in the food/travel category. Before Siempo I certainly had a 50-50 split in terms of usage of certain apps as they offer equal number of discounts. For food, I switched between Swiggy and Zomato and Ola/Uber for cabs, it was again a 50-50 split as well. But since I had set Swiggy as my food app, and Ola as my cab app, I began to prefer convenience more for both of these after I switched back as I have now formed a deep association with these and the time I need their services I can only think of these two. + +I hope, dear reader, I was able to help you with informing more about the digital well being space and I have motivated you to journey on your own quest and read more about it. Do comment about your experience with Siempo and similar apps along with what your thoughts are, would love to discuss this further. + + [1]: http://www.getsiempo.com/ + [2]: http://humanetech.com/ \ No newline at end of file diff --git a/content/blog/_index.md b/content/blog/_index.md new file mode 100644 index 0000000..59db226 --- /dev/null +++ b/content/blog/_index.md @@ -0,0 +1,3 @@ +--- +title: "Blog" +--- diff --git a/content/blog_list/_index.md b/content/blog_list/_index.md new file mode 100644 index 0000000..fd5d38a --- /dev/null +++ b/content/blog_list/_index.md @@ -0,0 +1,3 @@ ++++ +title= "Blog List" ++++ \ No newline at end of file diff --git a/content/search/_index.md b/content/search/_index.md new file mode 100644 index 0000000..17736d6 --- /dev/null +++ b/content/search/_index.md @@ -0,0 +1,15 @@ ++++ +title = "Search" # title of the page +layout = "search" # sets the layout to use +noindex = true # tell robots not to index +[form] + helpblock = "Press s to focus input anytime." +[form.input] + placeholder = "Enter search query…" + disabled = false +[security.csp.directives] + scriptSrc = [ + "'sha512-Bxby9zhln4Zc2thGA1E9CdT4qcCY52SxO/SBxAH6qQK6LK6/1gGq1xJ3Uz0SXTsPSL6quze7bYQUHr94xJS7jQ=='", + "'unsafe-eval'" + ] ++++ diff --git a/content/wp-content/uploads/2016/11/150px-500px-Glider.svg_-50x50.png b/content/wp-content/uploads/2016/11/150px-500px-Glider.svg_-50x50.png new file mode 100644 index 0000000..00bc7a1 Binary files /dev/null and b/content/wp-content/uploads/2016/11/150px-500px-Glider.svg_-50x50.png differ diff --git a/content/wp-content/uploads/2016/11/150px-500px-Glider.svg_.png b/content/wp-content/uploads/2016/11/150px-500px-Glider.svg_.png new file mode 100644 index 0000000..89dd5f7 Binary files /dev/null and b/content/wp-content/uploads/2016/11/150px-500px-Glider.svg_.png differ diff --git a/content/wp-content/uploads/2016/11/cropped-150px-500px-Glider.svg_-150x150.png b/content/wp-content/uploads/2016/11/cropped-150px-500px-Glider.svg_-150x150.png new file mode 100644 index 0000000..e978d03 Binary files /dev/null and b/content/wp-content/uploads/2016/11/cropped-150px-500px-Glider.svg_-150x150.png differ diff --git a/content/wp-content/uploads/2016/11/cropped-150px-500px-Glider.svg_-180x180.png b/content/wp-content/uploads/2016/11/cropped-150px-500px-Glider.svg_-180x180.png new file mode 100644 index 0000000..74cbff7 Binary files /dev/null and b/content/wp-content/uploads/2016/11/cropped-150px-500px-Glider.svg_-180x180.png differ diff --git a/content/wp-content/uploads/2016/11/cropped-150px-500px-Glider.svg_-192x192.png b/content/wp-content/uploads/2016/11/cropped-150px-500px-Glider.svg_-192x192.png new file mode 100644 index 0000000..e4a01d2 Binary files /dev/null and b/content/wp-content/uploads/2016/11/cropped-150px-500px-Glider.svg_-192x192.png differ diff --git a/content/wp-content/uploads/2016/11/cropped-150px-500px-Glider.svg_-270x270.png b/content/wp-content/uploads/2016/11/cropped-150px-500px-Glider.svg_-270x270.png new file mode 100644 index 0000000..a035028 Binary files /dev/null and b/content/wp-content/uploads/2016/11/cropped-150px-500px-Glider.svg_-270x270.png differ diff --git a/content/wp-content/uploads/2016/11/cropped-150px-500px-Glider.svg_-300x300.png b/content/wp-content/uploads/2016/11/cropped-150px-500px-Glider.svg_-300x300.png new file mode 100644 index 0000000..351224d Binary files /dev/null and b/content/wp-content/uploads/2016/11/cropped-150px-500px-Glider.svg_-300x300.png differ diff --git a/static/favicon.ico b/content/wp-content/uploads/2016/11/cropped-150px-500px-Glider.svg_-32x32.png similarity index 100% rename from static/favicon.ico rename to content/wp-content/uploads/2016/11/cropped-150px-500px-Glider.svg_-32x32.png diff --git a/content/wp-content/uploads/2016/11/cropped-150px-500px-Glider.svg_-50x50.png b/content/wp-content/uploads/2016/11/cropped-150px-500px-Glider.svg_-50x50.png new file mode 100644 index 0000000..3a3fd5d Binary files /dev/null and b/content/wp-content/uploads/2016/11/cropped-150px-500px-Glider.svg_-50x50.png differ diff --git a/content/wp-content/uploads/2016/11/cropped-150px-500px-Glider.svg_.png b/content/wp-content/uploads/2016/11/cropped-150px-500px-Glider.svg_.png new file mode 100644 index 0000000..7300694 Binary files /dev/null and b/content/wp-content/uploads/2016/11/cropped-150px-500px-Glider.svg_.png differ diff --git a/content/wp-content/uploads/2016/11/favicon-1.ico b/content/wp-content/uploads/2016/11/favicon-1.ico new file mode 100644 index 0000000..39d114d --- /dev/null +++ b/content/wp-content/uploads/2016/11/favicon-1.ico @@ -0,0 +1,30 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + diff --git a/content/wp-content/uploads/2016/11/favicon.ico b/content/wp-content/uploads/2016/11/favicon.ico new file mode 100644 index 0000000..2a04fbb Binary files /dev/null and b/content/wp-content/uploads/2016/11/favicon.ico differ diff --git a/content/wp-content/uploads/2016/12/12963761_708634509278687_7278243074211424343_n-150x150.jpg b/content/wp-content/uploads/2016/12/12963761_708634509278687_7278243074211424343_n-150x150.jpg new file mode 100644 index 0000000..63f2ba4 Binary files /dev/null and b/content/wp-content/uploads/2016/12/12963761_708634509278687_7278243074211424343_n-150x150.jpg differ diff --git a/content/wp-content/uploads/2016/12/12963761_708634509278687_7278243074211424343_n-300x300.jpg b/content/wp-content/uploads/2016/12/12963761_708634509278687_7278243074211424343_n-300x300.jpg new file mode 100644 index 0000000..7c9556b Binary files /dev/null and b/content/wp-content/uploads/2016/12/12963761_708634509278687_7278243074211424343_n-300x300.jpg differ diff --git a/content/wp-content/uploads/2016/12/12963761_708634509278687_7278243074211424343_n-700x700.jpg b/content/wp-content/uploads/2016/12/12963761_708634509278687_7278243074211424343_n-700x700.jpg new file mode 100644 index 0000000..4d0a4ad Binary files /dev/null and b/content/wp-content/uploads/2016/12/12963761_708634509278687_7278243074211424343_n-700x700.jpg differ diff --git a/content/wp-content/uploads/2016/12/12963761_708634509278687_7278243074211424343_n-768x768.jpg b/content/wp-content/uploads/2016/12/12963761_708634509278687_7278243074211424343_n-768x768.jpg new file mode 100644 index 0000000..64db566 Binary files /dev/null and b/content/wp-content/uploads/2016/12/12963761_708634509278687_7278243074211424343_n-768x768.jpg differ diff --git a/content/wp-content/uploads/2016/12/12963761_708634509278687_7278243074211424343_n.jpg b/content/wp-content/uploads/2016/12/12963761_708634509278687_7278243074211424343_n.jpg new file mode 100644 index 0000000..fdf3b03 Binary files /dev/null and b/content/wp-content/uploads/2016/12/12963761_708634509278687_7278243074211424343_n.jpg differ diff --git a/content/wp-content/uploads/2016/12/8051_Vectorization.pdf b/content/wp-content/uploads/2016/12/8051_Vectorization.pdf new file mode 100644 index 0000000..249ce1e Binary files /dev/null and b/content/wp-content/uploads/2016/12/8051_Vectorization.pdf differ diff --git a/content/wp-content/uploads/2016/12/Screenshot-from-2016-12-23-04-44-36-136x150.png b/content/wp-content/uploads/2016/12/Screenshot-from-2016-12-23-04-44-36-136x150.png new file mode 100644 index 0000000..95b11bb Binary files /dev/null and b/content/wp-content/uploads/2016/12/Screenshot-from-2016-12-23-04-44-36-136x150.png differ diff --git a/content/wp-content/uploads/2016/12/Screenshot-from-2016-12-23-04-44-36-50x50.png b/content/wp-content/uploads/2016/12/Screenshot-from-2016-12-23-04-44-36-50x50.png new file mode 100644 index 0000000..5a04929 Binary files /dev/null and b/content/wp-content/uploads/2016/12/Screenshot-from-2016-12-23-04-44-36-50x50.png differ diff --git a/content/wp-content/uploads/2016/12/Screenshot-from-2016-12-23-04-44-36.png b/content/wp-content/uploads/2016/12/Screenshot-from-2016-12-23-04-44-36.png new file mode 100644 index 0000000..e330848 Binary files /dev/null and b/content/wp-content/uploads/2016/12/Screenshot-from-2016-12-23-04-44-36.png differ diff --git a/content/wp-content/uploads/2016/12/UnderstandingtheUndertonesofPoliticalThoughtwithinthePoliticallyAgnosticFOSSMovement-SOC114-1.pdf b/content/wp-content/uploads/2016/12/UnderstandingtheUndertonesofPoliticalThoughtwithinthePoliticallyAgnosticFOSSMovement-SOC114-1.pdf new file mode 100644 index 0000000..86ebc67 Binary files /dev/null and b/content/wp-content/uploads/2016/12/UnderstandingtheUndertonesofPoliticalThoughtwithinthePoliticallyAgnosticFOSSMovement-SOC114-1.pdf differ diff --git a/content/wp-content/uploads/2016/12/dohack-150x150.jpg b/content/wp-content/uploads/2016/12/dohack-150x150.jpg new file mode 100644 index 0000000..b358ae1 Binary files /dev/null and b/content/wp-content/uploads/2016/12/dohack-150x150.jpg differ diff --git a/content/wp-content/uploads/2016/12/dohack-300x300.jpg b/content/wp-content/uploads/2016/12/dohack-300x300.jpg new file mode 100644 index 0000000..97a2c7d Binary files /dev/null and b/content/wp-content/uploads/2016/12/dohack-300x300.jpg differ diff --git a/content/wp-content/uploads/2016/12/dohack-700x700.jpg b/content/wp-content/uploads/2016/12/dohack-700x700.jpg new file mode 100644 index 0000000..b2ddce8 Binary files /dev/null and b/content/wp-content/uploads/2016/12/dohack-700x700.jpg differ diff --git a/content/wp-content/uploads/2016/12/dohack-768x768.jpg b/content/wp-content/uploads/2016/12/dohack-768x768.jpg new file mode 100644 index 0000000..55acfb8 Binary files /dev/null and b/content/wp-content/uploads/2016/12/dohack-768x768.jpg differ diff --git a/content/wp-content/uploads/2016/12/dohack.jpg b/content/wp-content/uploads/2016/12/dohack.jpg new file mode 100644 index 0000000..2b86753 Binary files /dev/null and b/content/wp-content/uploads/2016/12/dohack.jpg differ diff --git a/content/wp-content/uploads/2016/12/heiot-1-150x150.jpg b/content/wp-content/uploads/2016/12/heiot-1-150x150.jpg new file mode 100644 index 0000000..42e79f9 Binary files /dev/null and b/content/wp-content/uploads/2016/12/heiot-1-150x150.jpg differ diff --git a/content/wp-content/uploads/2016/12/heiot-1-300x209.jpg b/content/wp-content/uploads/2016/12/heiot-1-300x209.jpg new file mode 100644 index 0000000..5eee237 Binary files /dev/null and b/content/wp-content/uploads/2016/12/heiot-1-300x209.jpg differ diff --git a/content/wp-content/uploads/2016/12/heiot-1-50x50.jpg b/content/wp-content/uploads/2016/12/heiot-1-50x50.jpg new file mode 100644 index 0000000..7e0fed2 Binary files /dev/null and b/content/wp-content/uploads/2016/12/heiot-1-50x50.jpg differ diff --git a/content/wp-content/uploads/2016/12/heiot-1-700x487.jpg b/content/wp-content/uploads/2016/12/heiot-1-700x487.jpg new file mode 100644 index 0000000..a40149d Binary files /dev/null and b/content/wp-content/uploads/2016/12/heiot-1-700x487.jpg differ diff --git a/content/wp-content/uploads/2016/12/heiot-1-768x534.jpg b/content/wp-content/uploads/2016/12/heiot-1-768x534.jpg new file mode 100644 index 0000000..3f44b42 Binary files /dev/null and b/content/wp-content/uploads/2016/12/heiot-1-768x534.jpg differ diff --git a/content/wp-content/uploads/2016/12/heiot-1.jpg b/content/wp-content/uploads/2016/12/heiot-1.jpg new file mode 100644 index 0000000..6c1bd6c Binary files /dev/null and b/content/wp-content/uploads/2016/12/heiot-1.jpg differ diff --git a/content/wp-content/uploads/2016/12/heiot-150x150.jpg b/content/wp-content/uploads/2016/12/heiot-150x150.jpg new file mode 100644 index 0000000..fb1832d Binary files /dev/null and b/content/wp-content/uploads/2016/12/heiot-150x150.jpg differ diff --git a/content/wp-content/uploads/2016/12/heiot-168x300.jpg b/content/wp-content/uploads/2016/12/heiot-168x300.jpg new file mode 100644 index 0000000..c194a55 Binary files /dev/null and b/content/wp-content/uploads/2016/12/heiot-168x300.jpg differ diff --git a/content/wp-content/uploads/2016/12/heiot-2-150x150.jpg b/content/wp-content/uploads/2016/12/heiot-2-150x150.jpg new file mode 100644 index 0000000..fe07af7 Binary files /dev/null and b/content/wp-content/uploads/2016/12/heiot-2-150x150.jpg differ diff --git a/content/wp-content/uploads/2016/12/heiot-2-300x143.jpg b/content/wp-content/uploads/2016/12/heiot-2-300x143.jpg new file mode 100644 index 0000000..2566f55 Binary files /dev/null and b/content/wp-content/uploads/2016/12/heiot-2-300x143.jpg differ diff --git a/content/wp-content/uploads/2016/12/heiot-2-50x50.jpg b/content/wp-content/uploads/2016/12/heiot-2-50x50.jpg new file mode 100644 index 0000000..bce3281 Binary files /dev/null and b/content/wp-content/uploads/2016/12/heiot-2-50x50.jpg differ diff --git a/content/wp-content/uploads/2016/12/heiot-2.jpg b/content/wp-content/uploads/2016/12/heiot-2.jpg new file mode 100644 index 0000000..522c74d Binary files /dev/null and b/content/wp-content/uploads/2016/12/heiot-2.jpg differ diff --git a/content/wp-content/uploads/2016/12/heiot-50x50.jpg b/content/wp-content/uploads/2016/12/heiot-50x50.jpg new file mode 100644 index 0000000..1f85197 Binary files /dev/null and b/content/wp-content/uploads/2016/12/heiot-50x50.jpg differ diff --git a/content/wp-content/uploads/2016/12/heiot.jpg b/content/wp-content/uploads/2016/12/heiot.jpg new file mode 100644 index 0000000..dad13ef Binary files /dev/null and b/content/wp-content/uploads/2016/12/heiot.jpg differ diff --git a/content/wp-content/uploads/2017/07/TP_WSN2017_Group_15-1-pdf-106x150.jpg b/content/wp-content/uploads/2017/07/TP_WSN2017_Group_15-1-pdf-106x150.jpg new file mode 100644 index 0000000..43d36fe Binary files /dev/null and b/content/wp-content/uploads/2017/07/TP_WSN2017_Group_15-1-pdf-106x150.jpg differ diff --git a/content/wp-content/uploads/2017/07/TP_WSN2017_Group_15-1-pdf-212x300.jpg b/content/wp-content/uploads/2017/07/TP_WSN2017_Group_15-1-pdf-212x300.jpg new file mode 100644 index 0000000..1c9605f Binary files /dev/null and b/content/wp-content/uploads/2017/07/TP_WSN2017_Group_15-1-pdf-212x300.jpg differ diff --git a/content/wp-content/uploads/2017/07/TP_WSN2017_Group_15-1-pdf-700x989.jpg b/content/wp-content/uploads/2017/07/TP_WSN2017_Group_15-1-pdf-700x989.jpg new file mode 100644 index 0000000..11f1fa7 Binary files /dev/null and b/content/wp-content/uploads/2017/07/TP_WSN2017_Group_15-1-pdf-700x989.jpg differ diff --git a/content/wp-content/uploads/2017/07/TP_WSN2017_Group_15-1-pdf.jpg b/content/wp-content/uploads/2017/07/TP_WSN2017_Group_15-1-pdf.jpg new file mode 100644 index 0000000..d896289 Binary files /dev/null and b/content/wp-content/uploads/2017/07/TP_WSN2017_Group_15-1-pdf.jpg differ diff --git a/content/wp-content/uploads/2017/07/TP_WSN2017_Group_15-1.pdf b/content/wp-content/uploads/2017/07/TP_WSN2017_Group_15-1.pdf new file mode 100644 index 0000000..6b0c65f Binary files /dev/null and b/content/wp-content/uploads/2017/07/TP_WSN2017_Group_15-1.pdf differ diff --git a/content/wp-content/uploads/2017/07/WSN-Project-Report-pdf-116x150.jpg b/content/wp-content/uploads/2017/07/WSN-Project-Report-pdf-116x150.jpg new file mode 100644 index 0000000..9ed4d91 Binary files /dev/null and b/content/wp-content/uploads/2017/07/WSN-Project-Report-pdf-116x150.jpg differ diff --git a/content/wp-content/uploads/2017/07/WSN-Project-Report-pdf-232x300.jpg b/content/wp-content/uploads/2017/07/WSN-Project-Report-pdf-232x300.jpg new file mode 100644 index 0000000..bf423b7 Binary files /dev/null and b/content/wp-content/uploads/2017/07/WSN-Project-Report-pdf-232x300.jpg differ diff --git a/content/wp-content/uploads/2017/07/WSN-Project-Report-pdf-700x906.jpg b/content/wp-content/uploads/2017/07/WSN-Project-Report-pdf-700x906.jpg new file mode 100644 index 0000000..47ab72d Binary files /dev/null and b/content/wp-content/uploads/2017/07/WSN-Project-Report-pdf-700x906.jpg differ diff --git a/content/wp-content/uploads/2017/07/WSN-Project-Report-pdf.jpg b/content/wp-content/uploads/2017/07/WSN-Project-Report-pdf.jpg new file mode 100644 index 0000000..6dd6e7f Binary files /dev/null and b/content/wp-content/uploads/2017/07/WSN-Project-Report-pdf.jpg differ diff --git a/content/wp-content/uploads/2017/07/WSN-Project-Report.pdf b/content/wp-content/uploads/2017/07/WSN-Project-Report.pdf new file mode 100644 index 0000000..caeee33 Binary files /dev/null and b/content/wp-content/uploads/2017/07/WSN-Project-Report.pdf differ diff --git a/content/wp-content/uploads/2017/11/doc-pdf-116x150.jpg b/content/wp-content/uploads/2017/11/doc-pdf-116x150.jpg new file mode 100644 index 0000000..fb8992a Binary files /dev/null and b/content/wp-content/uploads/2017/11/doc-pdf-116x150.jpg differ diff --git a/content/wp-content/uploads/2017/11/doc-pdf-232x300.jpg b/content/wp-content/uploads/2017/11/doc-pdf-232x300.jpg new file mode 100644 index 0000000..f61cd81 Binary files /dev/null and b/content/wp-content/uploads/2017/11/doc-pdf-232x300.jpg differ diff --git a/content/wp-content/uploads/2017/11/doc-pdf-700x906.jpg b/content/wp-content/uploads/2017/11/doc-pdf-700x906.jpg new file mode 100644 index 0000000..7b1fb8d Binary files /dev/null and b/content/wp-content/uploads/2017/11/doc-pdf-700x906.jpg differ diff --git a/content/wp-content/uploads/2017/11/doc-pdf.jpg b/content/wp-content/uploads/2017/11/doc-pdf.jpg new file mode 100644 index 0000000..2762d1b Binary files /dev/null and b/content/wp-content/uploads/2017/11/doc-pdf.jpg differ diff --git a/content/wp-content/uploads/2017/11/doc.pdf b/content/wp-content/uploads/2017/11/doc.pdf new file mode 100644 index 0000000..6cf4500 Binary files /dev/null and b/content/wp-content/uploads/2017/11/doc.pdf differ diff --git a/content/wp-content/uploads/2017/12/fig1-150x150.png b/content/wp-content/uploads/2017/12/fig1-150x150.png new file mode 100644 index 0000000..d5eebb7 Binary files /dev/null and b/content/wp-content/uploads/2017/12/fig1-150x150.png differ diff --git a/content/wp-content/uploads/2017/12/fig1-300x189.png b/content/wp-content/uploads/2017/12/fig1-300x189.png new file mode 100644 index 0000000..6d4354c Binary files /dev/null and b/content/wp-content/uploads/2017/12/fig1-300x189.png differ diff --git a/content/wp-content/uploads/2017/12/fig1-700x442.png b/content/wp-content/uploads/2017/12/fig1-700x442.png new file mode 100644 index 0000000..4d688f0 Binary files /dev/null and b/content/wp-content/uploads/2017/12/fig1-700x442.png differ diff --git a/content/wp-content/uploads/2017/12/fig1-768x485.png b/content/wp-content/uploads/2017/12/fig1-768x485.png new file mode 100644 index 0000000..946e91e Binary files /dev/null and b/content/wp-content/uploads/2017/12/fig1-768x485.png differ diff --git a/content/wp-content/uploads/2017/12/fig1.png b/content/wp-content/uploads/2017/12/fig1.png new file mode 100644 index 0000000..197781c Binary files /dev/null and b/content/wp-content/uploads/2017/12/fig1.png differ diff --git a/content/wp-content/uploads/2017/12/fig2-150x150.png b/content/wp-content/uploads/2017/12/fig2-150x150.png new file mode 100644 index 0000000..a4cc67b Binary files /dev/null and b/content/wp-content/uploads/2017/12/fig2-150x150.png differ diff --git a/content/wp-content/uploads/2017/12/fig2-300x216.png b/content/wp-content/uploads/2017/12/fig2-300x216.png new file mode 100644 index 0000000..7e0200a Binary files /dev/null and b/content/wp-content/uploads/2017/12/fig2-300x216.png differ diff --git a/content/wp-content/uploads/2017/12/fig2-700x503.png b/content/wp-content/uploads/2017/12/fig2-700x503.png new file mode 100644 index 0000000..eccd1ae Binary files /dev/null and b/content/wp-content/uploads/2017/12/fig2-700x503.png differ diff --git a/content/wp-content/uploads/2017/12/fig2-768x552.png b/content/wp-content/uploads/2017/12/fig2-768x552.png new file mode 100644 index 0000000..29adc1c Binary files /dev/null and b/content/wp-content/uploads/2017/12/fig2-768x552.png differ diff --git a/content/wp-content/uploads/2017/12/fig2.png b/content/wp-content/uploads/2017/12/fig2.png new file mode 100644 index 0000000..3fee4d1 Binary files /dev/null and b/content/wp-content/uploads/2017/12/fig2.png differ diff --git a/content/wp-content/uploads/2017/12/fig3-150x150.png b/content/wp-content/uploads/2017/12/fig3-150x150.png new file mode 100644 index 0000000..818812b Binary files /dev/null and b/content/wp-content/uploads/2017/12/fig3-150x150.png differ diff --git a/content/wp-content/uploads/2017/12/fig3-300x125.png b/content/wp-content/uploads/2017/12/fig3-300x125.png new file mode 100644 index 0000000..228ee63 Binary files /dev/null and b/content/wp-content/uploads/2017/12/fig3-300x125.png differ diff --git a/content/wp-content/uploads/2017/12/fig3-700x292.png b/content/wp-content/uploads/2017/12/fig3-700x292.png new file mode 100644 index 0000000..d4ab46c Binary files /dev/null and b/content/wp-content/uploads/2017/12/fig3-700x292.png differ diff --git a/content/wp-content/uploads/2017/12/fig3-768x320.png b/content/wp-content/uploads/2017/12/fig3-768x320.png new file mode 100644 index 0000000..a96cb8e Binary files /dev/null and b/content/wp-content/uploads/2017/12/fig3-768x320.png differ diff --git a/content/wp-content/uploads/2017/12/fig3.png b/content/wp-content/uploads/2017/12/fig3.png new file mode 100644 index 0000000..d3a788d Binary files /dev/null and b/content/wp-content/uploads/2017/12/fig3.png differ diff --git a/content/wp-content/uploads/2017/12/fig4-150x150.png b/content/wp-content/uploads/2017/12/fig4-150x150.png new file mode 100644 index 0000000..9a835fa Binary files /dev/null and b/content/wp-content/uploads/2017/12/fig4-150x150.png differ diff --git a/content/wp-content/uploads/2017/12/fig4-300x114.png b/content/wp-content/uploads/2017/12/fig4-300x114.png new file mode 100644 index 0000000..040c786 Binary files /dev/null and b/content/wp-content/uploads/2017/12/fig4-300x114.png differ diff --git a/content/wp-content/uploads/2017/12/fig4-700x266.png b/content/wp-content/uploads/2017/12/fig4-700x266.png new file mode 100644 index 0000000..7c470ce Binary files /dev/null and b/content/wp-content/uploads/2017/12/fig4-700x266.png differ diff --git a/content/wp-content/uploads/2017/12/fig4.png b/content/wp-content/uploads/2017/12/fig4.png new file mode 100644 index 0000000..9aa506a Binary files /dev/null and b/content/wp-content/uploads/2017/12/fig4.png differ diff --git a/content/wp-content/uploads/2017/12/relu-1-1-150x150.png b/content/wp-content/uploads/2017/12/relu-1-1-150x150.png new file mode 100644 index 0000000..7f48c8b Binary files /dev/null and b/content/wp-content/uploads/2017/12/relu-1-1-150x150.png differ diff --git a/content/wp-content/uploads/2017/12/relu-1-1-300x225.png b/content/wp-content/uploads/2017/12/relu-1-1-300x225.png new file mode 100644 index 0000000..51518f1 Binary files /dev/null and b/content/wp-content/uploads/2017/12/relu-1-1-300x225.png differ diff --git a/content/wp-content/uploads/2017/12/relu-1-1.png b/content/wp-content/uploads/2017/12/relu-1-1.png new file mode 100644 index 0000000..a179c80 Binary files /dev/null and b/content/wp-content/uploads/2017/12/relu-1-1.png differ diff --git a/content/wp-content/uploads/2017/12/relu-1-150x150.png b/content/wp-content/uploads/2017/12/relu-1-150x150.png new file mode 100644 index 0000000..7f48c8b Binary files /dev/null and b/content/wp-content/uploads/2017/12/relu-1-150x150.png differ diff --git a/content/wp-content/uploads/2017/12/relu-1-300x225.png b/content/wp-content/uploads/2017/12/relu-1-300x225.png new file mode 100644 index 0000000..51518f1 Binary files /dev/null and b/content/wp-content/uploads/2017/12/relu-1-300x225.png differ diff --git a/content/wp-content/uploads/2017/12/relu-1.png b/content/wp-content/uploads/2017/12/relu-1.png new file mode 100644 index 0000000..a179c80 Binary files /dev/null and b/content/wp-content/uploads/2017/12/relu-1.png differ diff --git a/content/wp-content/uploads/2017/12/relu-2-1-150x150.png b/content/wp-content/uploads/2017/12/relu-2-1-150x150.png new file mode 100644 index 0000000..347df53 Binary files /dev/null and b/content/wp-content/uploads/2017/12/relu-2-1-150x150.png differ diff --git a/content/wp-content/uploads/2017/12/relu-2-1-300x225.png b/content/wp-content/uploads/2017/12/relu-2-1-300x225.png new file mode 100644 index 0000000..770bca9 Binary files /dev/null and b/content/wp-content/uploads/2017/12/relu-2-1-300x225.png differ diff --git a/content/wp-content/uploads/2017/12/relu-2-1.png b/content/wp-content/uploads/2017/12/relu-2-1.png new file mode 100644 index 0000000..2d175ed Binary files /dev/null and b/content/wp-content/uploads/2017/12/relu-2-1.png differ diff --git a/content/wp-content/uploads/2017/12/relu-2-150x150.png b/content/wp-content/uploads/2017/12/relu-2-150x150.png new file mode 100644 index 0000000..347df53 Binary files /dev/null and b/content/wp-content/uploads/2017/12/relu-2-150x150.png differ diff --git a/content/wp-content/uploads/2017/12/relu-2-300x225.png b/content/wp-content/uploads/2017/12/relu-2-300x225.png new file mode 100644 index 0000000..770bca9 Binary files /dev/null and b/content/wp-content/uploads/2017/12/relu-2-300x225.png differ diff --git a/content/wp-content/uploads/2017/12/relu-2.png b/content/wp-content/uploads/2017/12/relu-2.png new file mode 100644 index 0000000..2d175ed Binary files /dev/null and b/content/wp-content/uploads/2017/12/relu-2.png differ diff --git a/content/wp-content/uploads/2017/12/sigmoid-1-1-150x150.png b/content/wp-content/uploads/2017/12/sigmoid-1-1-150x150.png new file mode 100644 index 0000000..377fcf1 Binary files /dev/null and b/content/wp-content/uploads/2017/12/sigmoid-1-1-150x150.png differ diff --git a/content/wp-content/uploads/2017/12/sigmoid-1-1-300x225.png b/content/wp-content/uploads/2017/12/sigmoid-1-1-300x225.png new file mode 100644 index 0000000..e356cca Binary files /dev/null and b/content/wp-content/uploads/2017/12/sigmoid-1-1-300x225.png differ diff --git a/content/wp-content/uploads/2017/12/sigmoid-1-1.png b/content/wp-content/uploads/2017/12/sigmoid-1-1.png new file mode 100644 index 0000000..6a1a912 Binary files /dev/null and b/content/wp-content/uploads/2017/12/sigmoid-1-1.png differ diff --git a/content/wp-content/uploads/2017/12/sigmoid-1-150x150.png b/content/wp-content/uploads/2017/12/sigmoid-1-150x150.png new file mode 100644 index 0000000..377fcf1 Binary files /dev/null and b/content/wp-content/uploads/2017/12/sigmoid-1-150x150.png differ diff --git a/content/wp-content/uploads/2017/12/sigmoid-1-300x225.png b/content/wp-content/uploads/2017/12/sigmoid-1-300x225.png new file mode 100644 index 0000000..e356cca Binary files /dev/null and b/content/wp-content/uploads/2017/12/sigmoid-1-300x225.png differ diff --git a/content/wp-content/uploads/2017/12/sigmoid-1.png b/content/wp-content/uploads/2017/12/sigmoid-1.png new file mode 100644 index 0000000..6a1a912 Binary files /dev/null and b/content/wp-content/uploads/2017/12/sigmoid-1.png differ diff --git a/content/wp-content/uploads/2017/12/sigmoid-2-1-150x150.png b/content/wp-content/uploads/2017/12/sigmoid-2-1-150x150.png new file mode 100644 index 0000000..d7da8f4 Binary files /dev/null and b/content/wp-content/uploads/2017/12/sigmoid-2-1-150x150.png differ diff --git a/content/wp-content/uploads/2017/12/sigmoid-2-1-300x225.png b/content/wp-content/uploads/2017/12/sigmoid-2-1-300x225.png new file mode 100644 index 0000000..eddaf5a Binary files /dev/null and b/content/wp-content/uploads/2017/12/sigmoid-2-1-300x225.png differ diff --git a/content/wp-content/uploads/2017/12/sigmoid-2-1.png b/content/wp-content/uploads/2017/12/sigmoid-2-1.png new file mode 100644 index 0000000..853c09c Binary files /dev/null and b/content/wp-content/uploads/2017/12/sigmoid-2-1.png differ diff --git a/content/wp-content/uploads/2017/12/sigmoid-2-150x150.png b/content/wp-content/uploads/2017/12/sigmoid-2-150x150.png new file mode 100644 index 0000000..d7da8f4 Binary files /dev/null and b/content/wp-content/uploads/2017/12/sigmoid-2-150x150.png differ diff --git a/content/wp-content/uploads/2017/12/sigmoid-2-300x225.png b/content/wp-content/uploads/2017/12/sigmoid-2-300x225.png new file mode 100644 index 0000000..eddaf5a Binary files /dev/null and b/content/wp-content/uploads/2017/12/sigmoid-2-300x225.png differ diff --git a/content/wp-content/uploads/2017/12/sigmoid-2.png b/content/wp-content/uploads/2017/12/sigmoid-2.png new file mode 100644 index 0000000..853c09c Binary files /dev/null and b/content/wp-content/uploads/2017/12/sigmoid-2.png differ diff --git a/content/wp-content/uploads/2017/12/tanh-1-1-150x150.png b/content/wp-content/uploads/2017/12/tanh-1-1-150x150.png new file mode 100644 index 0000000..01f4b86 Binary files /dev/null and b/content/wp-content/uploads/2017/12/tanh-1-1-150x150.png differ diff --git a/content/wp-content/uploads/2017/12/tanh-1-1-300x225.png b/content/wp-content/uploads/2017/12/tanh-1-1-300x225.png new file mode 100644 index 0000000..9894eaf Binary files /dev/null and b/content/wp-content/uploads/2017/12/tanh-1-1-300x225.png differ diff --git a/content/wp-content/uploads/2017/12/tanh-1-1.png b/content/wp-content/uploads/2017/12/tanh-1-1.png new file mode 100644 index 0000000..275ef6f Binary files /dev/null and b/content/wp-content/uploads/2017/12/tanh-1-1.png differ diff --git a/content/wp-content/uploads/2017/12/tanh-1-150x150.png b/content/wp-content/uploads/2017/12/tanh-1-150x150.png new file mode 100644 index 0000000..01f4b86 Binary files /dev/null and b/content/wp-content/uploads/2017/12/tanh-1-150x150.png differ diff --git a/content/wp-content/uploads/2017/12/tanh-1-300x225.png b/content/wp-content/uploads/2017/12/tanh-1-300x225.png new file mode 100644 index 0000000..9894eaf Binary files /dev/null and b/content/wp-content/uploads/2017/12/tanh-1-300x225.png differ diff --git a/content/wp-content/uploads/2017/12/tanh-1.png b/content/wp-content/uploads/2017/12/tanh-1.png new file mode 100644 index 0000000..275ef6f Binary files /dev/null and b/content/wp-content/uploads/2017/12/tanh-1.png differ diff --git a/content/wp-content/uploads/2017/12/tanh-2-150x150.png b/content/wp-content/uploads/2017/12/tanh-2-150x150.png new file mode 100644 index 0000000..35dbcf5 Binary files /dev/null and b/content/wp-content/uploads/2017/12/tanh-2-150x150.png differ diff --git a/content/wp-content/uploads/2017/12/tanh-2-300x225.png b/content/wp-content/uploads/2017/12/tanh-2-300x225.png new file mode 100644 index 0000000..004d483 Binary files /dev/null and b/content/wp-content/uploads/2017/12/tanh-2-300x225.png differ diff --git a/content/wp-content/uploads/2017/12/tanh-2.png b/content/wp-content/uploads/2017/12/tanh-2.png new file mode 100644 index 0000000..0c66801 Binary files /dev/null and b/content/wp-content/uploads/2017/12/tanh-2.png differ diff --git a/content/wp-content/uploads/2018/02/22550124_1987147797978461_2612175686816255452_o-150x150.jpg b/content/wp-content/uploads/2018/02/22550124_1987147797978461_2612175686816255452_o-150x150.jpg new file mode 100644 index 0000000..cd2270f Binary files /dev/null and b/content/wp-content/uploads/2018/02/22550124_1987147797978461_2612175686816255452_o-150x150.jpg differ diff --git a/content/wp-content/uploads/2018/02/22550124_1987147797978461_2612175686816255452_o-300x200.jpg b/content/wp-content/uploads/2018/02/22550124_1987147797978461_2612175686816255452_o-300x200.jpg new file mode 100644 index 0000000..97012c5 Binary files /dev/null and b/content/wp-content/uploads/2018/02/22550124_1987147797978461_2612175686816255452_o-300x200.jpg differ diff --git a/content/wp-content/uploads/2018/02/22550124_1987147797978461_2612175686816255452_o-700x467.jpg b/content/wp-content/uploads/2018/02/22550124_1987147797978461_2612175686816255452_o-700x467.jpg new file mode 100644 index 0000000..6e16c43 Binary files /dev/null and b/content/wp-content/uploads/2018/02/22550124_1987147797978461_2612175686816255452_o-700x467.jpg differ diff --git a/content/wp-content/uploads/2018/02/22550124_1987147797978461_2612175686816255452_o-768x512.jpg b/content/wp-content/uploads/2018/02/22550124_1987147797978461_2612175686816255452_o-768x512.jpg new file mode 100644 index 0000000..f65a15d Binary files /dev/null and b/content/wp-content/uploads/2018/02/22550124_1987147797978461_2612175686816255452_o-768x512.jpg differ diff --git a/content/wp-content/uploads/2018/02/22550124_1987147797978461_2612175686816255452_o.jpg b/content/wp-content/uploads/2018/02/22550124_1987147797978461_2612175686816255452_o.jpg new file mode 100644 index 0000000..4a2c69f Binary files /dev/null and b/content/wp-content/uploads/2018/02/22550124_1987147797978461_2612175686816255452_o.jpg differ diff --git a/content/wp-content/uploads/2018/02/Rohan-Verma-Feb-2018-pdf-116x150.jpg b/content/wp-content/uploads/2018/02/Rohan-Verma-Feb-2018-pdf-116x150.jpg new file mode 100644 index 0000000..318ea8d Binary files /dev/null and b/content/wp-content/uploads/2018/02/Rohan-Verma-Feb-2018-pdf-116x150.jpg differ diff --git a/content/wp-content/uploads/2018/02/Rohan-Verma-Feb-2018-pdf-232x300.jpg b/content/wp-content/uploads/2018/02/Rohan-Verma-Feb-2018-pdf-232x300.jpg new file mode 100644 index 0000000..f0f1c70 Binary files /dev/null and b/content/wp-content/uploads/2018/02/Rohan-Verma-Feb-2018-pdf-232x300.jpg differ diff --git a/content/wp-content/uploads/2018/02/Rohan-Verma-Feb-2018-pdf-700x906.jpg b/content/wp-content/uploads/2018/02/Rohan-Verma-Feb-2018-pdf-700x906.jpg new file mode 100644 index 0000000..0b14d9d Binary files /dev/null and b/content/wp-content/uploads/2018/02/Rohan-Verma-Feb-2018-pdf-700x906.jpg differ diff --git a/content/wp-content/uploads/2018/02/Rohan-Verma-Feb-2018-pdf.jpg b/content/wp-content/uploads/2018/02/Rohan-Verma-Feb-2018-pdf.jpg new file mode 100644 index 0000000..35c4c99 Binary files /dev/null and b/content/wp-content/uploads/2018/02/Rohan-Verma-Feb-2018-pdf.jpg differ diff --git a/content/wp-content/uploads/2018/02/Rohan-Verma-Feb-2018.pdf b/content/wp-content/uploads/2018/02/Rohan-Verma-Feb-2018.pdf new file mode 100644 index 0000000..8595f32 Binary files /dev/null and b/content/wp-content/uploads/2018/02/Rohan-Verma-Feb-2018.pdf differ diff --git a/content/wp-content/uploads/2018/10/results___2_0-150x150.png b/content/wp-content/uploads/2018/10/results___2_0-150x150.png new file mode 100644 index 0000000..9455c05 Binary files /dev/null and b/content/wp-content/uploads/2018/10/results___2_0-150x150.png differ diff --git a/content/wp-content/uploads/2018/10/results___2_0-175x117.png b/content/wp-content/uploads/2018/10/results___2_0-175x117.png new file mode 100644 index 0000000..fc2e3a1 Binary files /dev/null and b/content/wp-content/uploads/2018/10/results___2_0-175x117.png differ diff --git a/content/wp-content/uploads/2018/10/results___2_0-300x228.png b/content/wp-content/uploads/2018/10/results___2_0-300x228.png new file mode 100644 index 0000000..1f54fd8 Binary files /dev/null and b/content/wp-content/uploads/2018/10/results___2_0-300x228.png differ diff --git a/content/wp-content/uploads/2018/10/results___2_0-700x531.png b/content/wp-content/uploads/2018/10/results___2_0-700x531.png new file mode 100644 index 0000000..188a23b Binary files /dev/null and b/content/wp-content/uploads/2018/10/results___2_0-700x531.png differ diff --git a/content/wp-content/uploads/2018/10/results___2_0-768x583.png b/content/wp-content/uploads/2018/10/results___2_0-768x583.png new file mode 100644 index 0000000..3934dad Binary files /dev/null and b/content/wp-content/uploads/2018/10/results___2_0-768x583.png differ diff --git a/content/wp-content/uploads/2018/10/results___2_0.png b/content/wp-content/uploads/2018/10/results___2_0.png new file mode 100644 index 0000000..ef9889e Binary files /dev/null and b/content/wp-content/uploads/2018/10/results___2_0.png differ diff --git a/content/wp-content/uploads/2018/10/results___4_0-150x150.png b/content/wp-content/uploads/2018/10/results___4_0-150x150.png new file mode 100644 index 0000000..bed523e Binary files /dev/null and b/content/wp-content/uploads/2018/10/results___4_0-150x150.png differ diff --git a/content/wp-content/uploads/2018/10/results___4_0-175x117.png b/content/wp-content/uploads/2018/10/results___4_0-175x117.png new file mode 100644 index 0000000..6dc380d Binary files /dev/null and b/content/wp-content/uploads/2018/10/results___4_0-175x117.png differ diff --git a/content/wp-content/uploads/2018/10/results___4_0-300x186.png b/content/wp-content/uploads/2018/10/results___4_0-300x186.png new file mode 100644 index 0000000..18d2140 Binary files /dev/null and b/content/wp-content/uploads/2018/10/results___4_0-300x186.png differ diff --git a/content/wp-content/uploads/2018/10/results___4_0-700x435.png b/content/wp-content/uploads/2018/10/results___4_0-700x435.png new file mode 100644 index 0000000..d0d3df1 Binary files /dev/null and b/content/wp-content/uploads/2018/10/results___4_0-700x435.png differ diff --git a/content/wp-content/uploads/2018/10/results___4_0-768x477.png b/content/wp-content/uploads/2018/10/results___4_0-768x477.png new file mode 100644 index 0000000..1031b94 Binary files /dev/null and b/content/wp-content/uploads/2018/10/results___4_0-768x477.png differ diff --git a/content/wp-content/uploads/2018/10/results___4_0.png b/content/wp-content/uploads/2018/10/results___4_0.png new file mode 100644 index 0000000..6cd387a Binary files /dev/null and b/content/wp-content/uploads/2018/10/results___4_0.png differ diff --git a/content/wp-content/uploads/me.jpg b/content/wp-content/uploads/me.jpg new file mode 100644 index 0000000..5ffd1e0 Binary files /dev/null and b/content/wp-content/uploads/me.jpg differ diff --git a/layouts/README.md b/layouts/README.md deleted file mode 100755 index 83d09ca..0000000 --- a/layouts/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# LAYOUTS - -This directory contains your Application Layouts. - -More information about the usage of this directory in the documentation: -https://nuxtjs.org/guide/views#layouts - -**This directory is not required, you can delete it if you don't want to use it.** diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html new file mode 100644 index 0000000..f9891b1 --- /dev/null +++ b/layouts/_default/baseof.html @@ -0,0 +1,70 @@ + + + + {{ partial "meta/content-security-policy.html" . }} + {{ .Hugo.Generator }} + + + {{ block "title" . }}{{ .Title }} | {{ .Site.Title }}{{ end }} + + + {{ $default_noindex_kinds := slice "section" "taxonomy" "taxonomyTerm" }} + {{ $noindex_kinds := .Site.Params.noindex_kinds | default $default_noindex_kinds }} + {{ $is_noindex_true := and (isset .Params "noindex") .Params.noindex }} + {{ if or (in $noindex_kinds .Kind) ($is_noindex_true) }} + + {{ end }} + {{ template "_internal/opengraph.html" . }} + {{ template "_internal/twitter_cards.html" . }} + {{ partial "meta/ogimage-maybe.html" . }} + {{ partial "meta/telegram-channel-maybe.html" . }} + {{ if eq .Kind "home" }} + {{ partial "meta/verifications.html" . }} + {{ end }} + {{ partial "meta/http-referrer.html" . }} + {{ $import := resources.Get "/js/vendor/fetch-inject.min.js" }} + {{ $baseof := resources.Get "/js/baseof.js" | resources.ExecuteAsTemplate "baseof.js" . }} + + + {{ partial "head/modules.html" . }} + {{ if .RSSLink }} + + {{ end }} + + {{ if (isset .Params "prev") }} + + {{ end }} + {{ if (isset .Params "next") }} + + {{ end }} + {{ partial "head/favicon.html" . }} + {{ partial "global-styles.html" . }} + {{ $highlights := findRE "class\\s*?=\\s*?\".*?\\bhighlight\\b.*?\"|class\\s*?=\\s*?highlight\\b" .Content }} + {{ if ge (len $highlights) 1 }} + + + {{ end }} + {{ template "_internal/google_analytics_async.html" . }} + + {{ $hackcss_disabled := .Site.Params.hackcss.disabled | default false }} + {{ $hackcss_mode := .Site.Params.hackcss.mode | default "hack" }} + {{ $hackcss_palette := .Site.Params.hackcss.palette | default "dark" }} + +
{{ block "header" . }}{{ end }}
+
{{ block "main" . }}{{ end }}
+
{{ block "footer" . }}{{ end }}
+ {{ $defaults := .Site.Params.defaults.modules }} + {{ $modules := .Site.Params.modules }} + {{ if (or $modules $defaults) }} + {{ with (default $defaults.toxic_swamp $modules.toxic_swamp) }} + {{ partial "modules/toxic-swamp/toolbar.html" dict }} + {{ end }} + {{ end }} + + diff --git a/layouts/_default/index.json b/layouts/_default/index.json new file mode 100644 index 0000000..b1d640a --- /dev/null +++ b/layouts/_default/index.json @@ -0,0 +1,8 @@ +{{- $scratch := newScratch -}} +{{- $scratch.Add "index" slice -}} +{{- range .Site.RegularPages -}} + {{- if ne .Params.noindex true -}} + {{- $scratch.Add "index" (dict "title" .Title "tags" .Params.tags "categories" .Params.categories "contents" .Plain "url" .RelPermalink "summary" .Summary) -}} + {{- end -}} +{{- end -}} +{{- $scratch.Get "index" | jsonify -}} diff --git a/layouts/_default/list.html b/layouts/_default/list.html new file mode 100644 index 0000000..bd22d05 --- /dev/null +++ b/layouts/_default/list.html @@ -0,0 +1,16 @@ +{{ define "header" }} + {{ partial "masthead.html" . }} +{{ end }} +{{ define "main" }} +
+

{{ .Title }}

+
+ {{ range .Paginator.Pages }} + {{ partial "page-summary.html" . }} + {{ end }} +{{ end }} +{{ define "footer" }} + {{ partial "pagination.html" . }} + {{ partial "powered-by.html" . }} + {{ partial "cookie-disclaimer.html" . }} +{{ end }} diff --git a/layouts/_default/rss.xml b/layouts/_default/rss.xml new file mode 100644 index 0000000..4ffde22 --- /dev/null +++ b/layouts/_default/rss.xml @@ -0,0 +1,36 @@ + + + https://blogs.law.harvard.edu/tech/rss + {{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{ . }} on {{ end }}{{ .Site.Title }}{{ end }} + {{ .Permalink }} + Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{ . }} {{ end }}{{ end }}on {{ .Site.Title }}{{ if .Site.Params.images }}{{ if ge (len .Site.Params.images) 1 }} + + {{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{ . }} on {{ end }}{{ .Site.Title }}{{ end }} + {{ .Permalink }} + {{ index .Site.Params.images 0 }} + {{ end }}{{ end }} + 1440 + {{ with .Site.Data.npm.latest }}{{ .name | humanize | title }} {{ .version }} (Hugo {{ $.Hugo.Version }}){{ else }}Hugo {{ .Hugo.Version }}{{ end }}{{ with .Site.LanguageCode }} + {{ . }}{{ end }}{{ with .Site.Author }} + {{ .email }}{{ with .name }} ({{ . }}){{ end }}{{ end }}{{ with .Site.Author }} + {{ .email }}{{ with .name }} ({{ . }}){{ end }}{{ end }}{{ with .Site.Copyright }} + {{ . }}{{ end }}{{ if not .Date.IsZero }} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}{{ end }} + {{ with .OutputFormats.Get "rss" }} + {{ printf "" .Permalink .MediaType | safeHTML }} + {{ end }} + {{ range .Pages }} + + {{ .Title }} + {{ .Permalink }}{{ if not .PublishDate.IsZero }} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}{{ end }}{{ if ne .Site.Params.hide_author true }}{{ if or (.Param "author") .Site.Author.email }} + {{ default .Site.Author.email (.Param "author") }}{{ if and (not (.Param "author")) .Site.Author.name }} ({{ default (.Param "author") .Site.Author.name }}){{ end }}{{ end }}{{ end }} + {{ .Permalink }} + {{ .Summary | plainify }}{{ range .Params.categories }} + {{ . | title }}{{ end }}{{ with .Resources.GetMatch "enclosure" }}{{ if .Params.length }} + {{ end }}{{ end }} + {{ "" | safeHTML }} + + {{ end }} + + diff --git a/layouts/_default/search.html b/layouts/_default/search.html new file mode 100644 index 0000000..f12e895 --- /dev/null +++ b/layouts/_default/search.html @@ -0,0 +1,48 @@ +{{ define "title" -}} + {{ .Title }} | {{ .Site.Title }} +{{- end }} +{{ define "header" }} + {{ partial "masthead.html" . }} +{{ end }} +{{ define "main" }} +
+

{{ .Title }}

+
+ +
+
+
+ +
+
+

Showing results for “{ resultsForSearch }”.

+
+ +
+
+
+
+{{ end }} +{{ define "footer" }} + {{ partial "powered-by.html" . }} + {{ partial "cookie-disclaimer.html" . }} + {{ $script := resources.Get "/js/search.js" | resources.ExecuteAsTemplate "search.js" . }} + +{{ end }} diff --git a/layouts/_default/single.html b/layouts/_default/single.html new file mode 100644 index 0000000..0cc54da --- /dev/null +++ b/layouts/_default/single.html @@ -0,0 +1,16 @@ +{{ define "title" -}} + {{ .Title }} | {{ .Site.Title }} +{{- end }} +{{ define "header" }} + {{ partial "masthead.html" . }} +{{ end }} +{{ define "main" }} +
+

{{ .Title }}

+
+ {{ .Content }} +{{ end }} +{{ define "footer" }} + {{ partial "powered-by.html" . }} + {{ partial "cookie-disclaimer.html" . }} +{{ end }} diff --git a/layouts/_default/taxonomy.html b/layouts/_default/taxonomy.html new file mode 100644 index 0000000..bd22d05 --- /dev/null +++ b/layouts/_default/taxonomy.html @@ -0,0 +1,16 @@ +{{ define "header" }} + {{ partial "masthead.html" . }} +{{ end }} +{{ define "main" }} +
+

{{ .Title }}

+
+ {{ range .Paginator.Pages }} + {{ partial "page-summary.html" . }} + {{ end }} +{{ end }} +{{ define "footer" }} + {{ partial "pagination.html" . }} + {{ partial "powered-by.html" . }} + {{ partial "cookie-disclaimer.html" . }} +{{ end }} diff --git a/layouts/_default/terms.html b/layouts/_default/terms.html new file mode 100644 index 0000000..84bd2f4 --- /dev/null +++ b/layouts/_default/terms.html @@ -0,0 +1,17 @@ +{{ define "header" }} + {{ partial "masthead.html" . }} +{{ end }} +{{ define "main" }} +
+

{{ .Title }}

+
+
    + {{ range $key, $value := .Data.Terms }} +
  • {{ $key }} ({{ len $value }}) + {{ end }} +
+{{ end }} +{{ define "footer" }} + {{ partial "powered-by.html" . }} + {{ partial "cookie-disclaimer.html" . }} +{{ end }} diff --git a/layouts/default.vue b/layouts/default.vue deleted file mode 100755 index d0fa627..0000000 --- a/layouts/default.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - diff --git a/layouts/index.html b/layouts/index.html new file mode 100644 index 0000000..e0beaeb --- /dev/null +++ b/layouts/index.html @@ -0,0 +1,64 @@ +{{ define "title" -}} + {{ .Site.Title }} +{{- end }} +{{ define "header" }} + {{ partial "masthead.html" . }} +{{ end }} +{{ define "main" }} +
+

{{ .Title }}

+
+ +
+ +
Hello World 👋, I'm Rohan, and welcome to my homepage.
+
+ +
+

About

+ I’m a Software Developer working at Zerodha Tech. +
+
+ My latest sideproject is upi.link, a small and nifty + programmable UPI shortlink generator. +
+
+
  • + + + + + +
  • +
    +
    +

    Blog

    + + You can read my blog where + I try to write about what I am doing and things I find interesting. I have organized my blog using categories + and tags. You can navigate through my blog by using them, or if you prefer to view by date, you can visit + the blog listing page. +
    +
    + +
    + categories: + {{range ($.Site.GetPage "taxonomyTerm" "categories").Pages }} + {{.Title}} + {{end}} +

    + tags: + {{range ($.Site.GetPage "taxonomyTerm" "tags").Pages }} + {{.Title}} + {{end}} +
    + +
    + I'm migrating the blog from Wordpress to Hugo, in the meantime, if you some page + looks odd, you can visit https://blog.rohanverma.net + and find the original blogs there. +{{ end }} +{{ define "footer" }} + {{ partial "powered-by.html" . }} + {{ partial "cookie-disclaimer.html" . }} +{{ end }} diff --git a/layouts/partials/head/favicon.html b/layouts/partials/head/favicon.html new file mode 100644 index 0000000..9804ef4 --- /dev/null +++ b/layouts/partials/head/favicon.html @@ -0,0 +1 @@ + diff --git a/layouts/section/blog_list.html b/layouts/section/blog_list.html new file mode 100644 index 0000000..8ced6c8 --- /dev/null +++ b/layouts/section/blog_list.html @@ -0,0 +1,24 @@ +{{ define "title" -}} + {{ .Site.Title }} +{{- end }} +{{ define "header" }} + {{ partial "masthead.html" . }} +{{ end }} +{{ define "main" }} +
    +

    {{ .Title }}

    +
    + +
    +
      + {{range .Site.RegularPages}} +
    • {{.Date.Format "2006-01-02"}} {{.Title}}
    • + {{end}} +
    +
    + +{{ end }} +{{ define "footer" }} + {{ partial "powered-by.html" . }} + {{ partial "cookie-disclaimer.html" . }} +{{ end }} diff --git a/middleware/README.md b/middleware/README.md deleted file mode 100755 index edb9129..0000000 --- a/middleware/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# MIDDLEWARE - -This directory contains your Application Middleware. -The middleware lets you define custom function to be ran before rendering a page or a group of pages (layouts). - -More information about the usage of this directory in the documentation: -https://nuxtjs.org/guide/routing#middleware - -**This directory is not required, you can delete it if you don't want to use it.** diff --git a/netlify.toml b/netlify.toml new file mode 100644 index 0000000..9fafa30 --- /dev/null +++ b/netlify.toml @@ -0,0 +1,31 @@ +[build] +publish = "public" +command = "hugo --gc --minify" + +[context.production.environment] +HUGO_VERSION = "0.54.0" +HUGO_ENV = "production" +HUGO_ENABLEGITINFO = "true" + +[context.split1] +command = "hugo --gc --minify --enableGitInfo" + +[context.split1.environment] +HUGO_VERSION = "0.54.0" +HUGO_ENV = "production" + +[context.deploy-preview] +command = "hugo --gc --minify --buildFuture -b $DEPLOY_PRIME_URL" + +[context.deploy-preview.environment] +HUGO_VERSION = "0.54.0" + +[context.branch-deploy] +command = "hugo --gc --minify -b $DEPLOY_PRIME_URL" + +[context.branch-deploy.environment] +HUGO_VERSION = "0.54.0" + +[context.next.environment] +HUGO_ENABLEGITINFO = "true" + diff --git a/nuxt.config.js b/nuxt.config.js deleted file mode 100755 index 87b140d..0000000 --- a/nuxt.config.js +++ /dev/null @@ -1,82 +0,0 @@ -module.exports = { - /* - ** Headers of the page - */ - head: { - titleTemplate: '%s | rohanverma.net', - htmlAttrs: { lang: 'en' }, - meta: [ - { charset: 'utf-8' }, - { name: 'viewport', content: 'width=device-width, initial-scale=1' }, - { name: 'theme-color', content: '#6574cd' }, - { hid: 'description', name: 'description', content: 'Personal Website of Rohan Verma' }, - ], - link: [ - { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }, - { rel: 'stylesheet', href: 'https://rsms.me/inter/inter.css' }, - { rel: 'stylesheet', href: 'https://fonts.googleapis.com/css?family=Playfair+Display' } - ] - }, - /* - ** Load global CSS - */ - css: ['@/assets/css/main.css'], - /* - ** Load nuxt modules - */ - modules: [ - 'nuxt-purgecss', - '@nuxtjs/axios', - ['nuxt-fontawesome', { - component: 'fa', - imports: [ - //import whole set - { - set: '@fortawesome/free-solid-svg-icons', - icons: ['fas'] - } - ] - }], - ['wp-nuxt', { - endpoint: 'https://blog.rohanverma.net/wp-json' - }], - ], - /* - ** PurgeCSS - ** https://github.com/Developmint/nuxt-purgecss - */ - purgeCSS: {}, - /* - ** This option is given directly to the vue-router Router constructor - */ - router: { - base: '', - linkActiveClass: 'is-active' - }, - /* - ** Customize the progress bar color - */ - loading: { color: '#3B8070' }, - /* - ** Build configuration - */ - build: { - /* -+ ** Extract CSS -+ */ - extractCSS: true, - /* - ** Run ESLint on save - */ - extend (config, { isDev, isClient }) { - if (isDev && isClient) { - config.module.rules.push({ - enforce: 'pre', - test: /\.(js|vue)$/, - loader: 'eslint-loader', - exclude: /(node_modules)/ - }) - } - } - } -} diff --git a/package.json b/package.json deleted file mode 100755 index 459a43f..0000000 --- a/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "rohanverma.net", - "version": "1.0.0", - "description": "Personal Website of Rohan Verma", - "author": "Rohan Verma ", - "private": true, - "scripts": { - "dev": "nuxt", - "build": "nuxt build", - "start": "nuxt start", - "generate": "nuxt generate", - "lint": "eslint --ext .js,.vue --ignore-path .gitignore .", - "precommit": "npm run lint" - }, - "dependencies": { - "@fortawesome/fontawesome-svg-core": "^1.2.14", - "@fortawesome/free-brands-svg-icons": "^5.7.1", - "@fortawesome/free-solid-svg-icons": "^5.7.1", - "@fortawesome/vue-fontawesome": "^0.1.5", - "@nuxtjs/axios": "^5.3.6", - "nuxt": "^2.3.4", - "nuxt-fontawesome": "^0.4.0", - "nuxt-purgecss": "^0.2.1", - "tailwindcss": "^0.7.3", - "wp-nuxt": "^1.0.3" - }, - "devDependencies": { - "autoprefixer": "^9.4.6", - "babel-eslint": "^10.0.1", - "cssnano": "^4.1.8", - "eslint": "^5.12.1", - "eslint-friendly-formatter": "^4.0.1", - "eslint-loader": "^2.1.1", - "eslint-plugin-vue": "^5.1.0", - "postcss-import": "^12.0.1", - "postcss-loader": "^3.0.0", - "postcss-preset-env": "^6.5.0", - "postcss-url": "^8.0.0" - } -} diff --git a/pages/README.md b/pages/README.md deleted file mode 100755 index b007071..0000000 --- a/pages/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# PAGES - -This directory contains your Application Views and Routes. -The framework reads all the .vue files inside this directory and creates the router of your application. - -More information about the usage of this directory in the documentation: -https://nuxtjs.org/guide/routing diff --git a/pages/index.vue b/pages/index.vue deleted file mode 100755 index 734a75b..0000000 --- a/pages/index.vue +++ /dev/null @@ -1,53 +0,0 @@ - - - - diff --git a/plugins/README.md b/plugins/README.md deleted file mode 100755 index ec39a25..0000000 --- a/plugins/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# PLUGINS - -This directory contains your Javascript plugins that you want to run before instantiating the root vue.js application. - -More information about the usage of this directory in the documentation: -https://nuxtjs.org/guide/plugins - -**This directory is not required, you can delete it if you don't want to use it.** diff --git a/postcss.config.js b/postcss.config.js deleted file mode 100644 index 753c8b7..0000000 --- a/postcss.config.js +++ /dev/null @@ -1,19 +0,0 @@ -module.exports = { - plugins: [ - require('postcss-import'), - require('postcss-url'), - require('tailwindcss')('./tailwind.config.js'), - require('autoprefixer')({ - cascade: false, - grid: true - }), - require('postcss-preset-env')({ - stage: 0 - }), - require('cssnano')({ - preset: 'default', - discardComments: { removeAll: true }, - zindex: false - }) - ] -} diff --git a/resources/_gen/assets/css/css/theme.css_d3f53f09220d597dac26fe7840c31fc9.content b/resources/_gen/assets/css/css/theme.css_d3f53f09220d597dac26fe7840c31fc9.content new file mode 100644 index 0000000..395ccb5 --- /dev/null +++ b/resources/_gen/assets/css/css/theme.css_d3f53f09220d597dac26fe7840c31fc9.content @@ -0,0 +1 @@ +:root{scroll-behavior:smooth;--screen-size-small: 30em}@keyframes intro{0%{opacity:0}100%{opacity:1}}.blur-up{-webkit-filter:blur(5px);filter:blur(5px);transition:filter 400ms,-webkit-filter 400ms}.blur-up.lazyloaded{-webkit-filter:blur(0);filter:blur(0)}.hack .readmore{margin-bottom:2.2em}.responsive-iframe{position:relative;padding-bottom:56.25%;padding-top:25px;height:0}.responsive-iframe iframe{position:absolute;top:0;left:0;width:100%;height:100%}iframe{border:0}main,footer{animation:intro .3s both;animation-delay:.15s}header:first-of-type+details{margin-top:1rem}footer time[datetime$=M]:before{content:"\2013\0020"}body>footer p.muted{margin-bottom:0}@media only screen and (max-width:768px){footer time[datetime$=M]{display:none}}blockquote cite{display:block}blockquote cite::before{content:"\2014\00A0"}:target{filter:brightness(1.2)}:disabled{cursor:not-allowed}#search-app [v-cloak]{display:none}.hack li ul{margin:0}.hack ol li{padding-left:27px}.main{padding:20px 10px}input.form-control{border-radius:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none}input.form-control,textarea.form-control,select.form-control,.help-block{font-size:initial}@media only screen and (max-width:768px){.help-block{font-size:unset}}html{font-size:13px}.hack .form input,.hack .form textarea,.hack .form button,.hack .form label{font-size:1rem}.hack .alert .highlight:first-of-type .chroma,.hack .card .highlight:first-of-type .chroma{margin-top:unset}.hack .alert .highlight:last-of-type .chroma,.hack .card .highlight:last-of-type .chroma{margin-bottom:unset}.hack blockquote,.hack blockquote:after{line-height:1.5}.hack figure{margin:unset}.hack figure a{border-bottom:none}.hack figure a:hover{background-color:inherit}article [itemprop=description]{margin-bottom:20px;margin-top:20px}article header img{width:100%;border-radius:3px}table td,table th{line-height:inherit}table a{border-bottom:unset}img{max-width:100%}@media only screen and (min-width:768px){html{font-size:16px;margin-left:calc(100vw - 100%)}.container{max-width:50rem}} \ No newline at end of file diff --git a/resources/_gen/assets/css/css/theme.css_d3f53f09220d597dac26fe7840c31fc9.json b/resources/_gen/assets/css/css/theme.css_d3f53f09220d597dac26fe7840c31fc9.json new file mode 100644 index 0000000..3317ead --- /dev/null +++ b/resources/_gen/assets/css/css/theme.css_d3f53f09220d597dac26fe7840c31fc9.json @@ -0,0 +1 @@ +{"Target":"css/theme.min.css","MediaType":"text/css","Data":{}} \ No newline at end of file diff --git a/resources/_gen/assets/js/js/baseof.js_9c5a2cf466e0b868fa5611447c9ddc0a.content b/resources/_gen/assets/js/js/baseof.js_9c5a2cf466e0b868fa5611447c9ddc0a.content new file mode 100644 index 0000000..bfe3995 --- /dev/null +++ b/resources/_gen/assets/js/js/baseof.js_9c5a2cf466e0b868fa5611447c9ddc0a.content @@ -0,0 +1 @@ +fetchInject(["/js/lazysizes.min.js"]); diff --git a/resources/_gen/assets/js/js/baseof.js_9c5a2cf466e0b868fa5611447c9ddc0a.json b/resources/_gen/assets/js/js/baseof.js_9c5a2cf466e0b868fa5611447c9ddc0a.json new file mode 100644 index 0000000..878f938 --- /dev/null +++ b/resources/_gen/assets/js/js/baseof.js_9c5a2cf466e0b868fa5611447c9ddc0a.json @@ -0,0 +1 @@ +{"Target":"baseof.867a3b59e4c87220894a383f9b28f22b7d07624adc182570a388384a951a96faecdebda54bb6cf3484306c2372a4a6e0ec1675b00e00b069e4e86ab834e2a918.js","MediaType":"application/javascript","Data":{"Integrity":"sha512-hno7WeTIciCJSjg/myjyK30HYkrcGCVwo4g4SpUalvrs3r2lS7bPNIQwbCNypKbg7BZ1sA4AsGnk6Gq4NOKpGA=="}} \ No newline at end of file diff --git a/resources/_gen/assets/js/js/baseof.js_fba388cd09048faa65b45690d0735118.content b/resources/_gen/assets/js/js/baseof.js_fba388cd09048faa65b45690d0735118.content new file mode 100644 index 0000000..bfe3995 --- /dev/null +++ b/resources/_gen/assets/js/js/baseof.js_fba388cd09048faa65b45690d0735118.content @@ -0,0 +1 @@ +fetchInject(["/js/lazysizes.min.js"]); diff --git a/resources/_gen/assets/js/js/baseof.js_fba388cd09048faa65b45690d0735118.json b/resources/_gen/assets/js/js/baseof.js_fba388cd09048faa65b45690d0735118.json new file mode 100644 index 0000000..94fd25b --- /dev/null +++ b/resources/_gen/assets/js/js/baseof.js_fba388cd09048faa65b45690d0735118.json @@ -0,0 +1 @@ +{"Target":"baseof.js","MediaType":"application/javascript","Data":{}} \ No newline at end of file diff --git a/resources/_gen/assets/js/js/search.js_478ce9460ab1690b65f445ec194033b7.content b/resources/_gen/assets/js/js/search.js_478ce9460ab1690b65f445ec194033b7.content new file mode 100644 index 0000000..16713c8 --- /dev/null +++ b/resources/_gen/assets/js/js/search.js_478ce9460ab1690b65f445ec194033b7.content @@ -0,0 +1,119 @@ +fetchInject([ + "/js/vue.min.js", + "/js/lodash.custom.min.js", + "/js/fuse.min.js", + "/js/mark.min.js" +]).then(() => { + (function (window, document, undefined) { + 'use strict'; + + const getQueryByParam = param => decodeURIComponent( + (location.search.split(param + '=')[1] || '').split('&')[0] + ).replace(/\+/g, ' '); + + const queryParam = 's'; + const selectors = { + appContainer: '#search-app', + resultContainer: '#search-results', + searchInput: '#query' + }; + + const fuseOpts = { + shouldSort: true, + tokenize: true, + matchAllTokens: true, + includeScore: true, + includeMatches: true, + keys: [ + { name: "title", weight: 0.8 }, + { name: "contents", weight: 0.5 }, + { name: "tags", weight: 0.3 }, + { name: "categories", weight: 0.3 } + ] + }; + + const getSearchInput = () => document.querySelector(selectors.searchInput); + const focusSearchInput = () => getSearchInput().focus(); + const searchQuery = getSearchInput().value = getQueryByParam(queryParam); + + const fuse = new Fuse([], fuseOpts); + window.fetch('/index.json').then(response => { + response.text().then(searchData => { + fuse.setCollection(JSON.parse(searchData)); + searchQuery && search(searchQuery); + }); + }); + + const getUrl = (query) => { + const encodedQuery = encodeURIComponent(query); + const url = "/search/"; + return (encodedQuery) + ? `${url}?${queryParam}=${encodedQuery}` + : url; + }; + + let mark = new Mark( + document.querySelector( + selectors.resultContainer + ) + ); + + const app = new Vue({ + delimiters: ['{', '}'], + el: selectors.appContainer, + data: { + fuse: null, + results: [], + query: getQueryByParam(queryParam), + resultsForSearch: getQueryByParam(queryParam) + }, + mounted () { + this.fuse = fuse; + window.onpopstate = (evt) => { + this.query = evt.state.query; + }; + document.onkeyup = function (evt) { + evt.key === 's' && focusSearchInput(); + } + focusSearchInput(); + }, + watch: { + query () { + this.executeSearch(); + window.history.replaceState( + {query: this.query}, + null, + getUrl(this.query) + ); + } + }, + beforeUpdate: function () { + mark.unmark(); + }, + updated: function () { + this.$nextTick(function () { + mark = new Mark( + document.querySelector( + selectors.resultContainer + ) + ) + mark.mark(this.query.trim()); + }) + }, + methods: { + executeSearch: _.debounce(function () { + const trimmedQuery = this.query.trim(); + this.resultsForSearch = trimmedQuery; + this.results = (trimmedQuery) + ? this.fuse.search(trimmedQuery) + : []; + }, 250) + } + }); + + const search = query => { + app.results = fuse.search(query); + }; + + })(window, document); +}); diff --git a/resources/_gen/assets/js/js/search.js_478ce9460ab1690b65f445ec194033b7.json b/resources/_gen/assets/js/js/search.js_478ce9460ab1690b65f445ec194033b7.json new file mode 100644 index 0000000..e9e7dde --- /dev/null +++ b/resources/_gen/assets/js/js/search.js_478ce9460ab1690b65f445ec194033b7.json @@ -0,0 +1 @@ +{"Target":"search.0716f2f738659f865cdad84603513d09d4f8a9c098e764b13bf481c401faa902ba2caebfd601aad71277533d125d3b0f48beaabb37bb6d84141ebf78c494bb8d.js","MediaType":"application/javascript","Data":{"Integrity":"sha512-Bxby9zhln4Zc2thGA1E9CdT4qcCY52SxO/SBxAH6qQK6LK6/1gGq1xJ3Uz0SXTsPSL6quze7bYQUHr94xJS7jQ=="}} \ No newline at end of file diff --git a/resources/_gen/assets/js/js/search.js_a6b16e383456ca836455be60c03cf29c.content b/resources/_gen/assets/js/js/search.js_a6b16e383456ca836455be60c03cf29c.content new file mode 100644 index 0000000..16713c8 --- /dev/null +++ b/resources/_gen/assets/js/js/search.js_a6b16e383456ca836455be60c03cf29c.content @@ -0,0 +1,119 @@ +fetchInject([ + "/js/vue.min.js", + "/js/lodash.custom.min.js", + "/js/fuse.min.js", + "/js/mark.min.js" +]).then(() => { + (function (window, document, undefined) { + 'use strict'; + + const getQueryByParam = param => decodeURIComponent( + (location.search.split(param + '=')[1] || '').split('&')[0] + ).replace(/\+/g, ' '); + + const queryParam = 's'; + const selectors = { + appContainer: '#search-app', + resultContainer: '#search-results', + searchInput: '#query' + }; + + const fuseOpts = { + shouldSort: true, + tokenize: true, + matchAllTokens: true, + includeScore: true, + includeMatches: true, + keys: [ + { name: "title", weight: 0.8 }, + { name: "contents", weight: 0.5 }, + { name: "tags", weight: 0.3 }, + { name: "categories", weight: 0.3 } + ] + }; + + const getSearchInput = () => document.querySelector(selectors.searchInput); + const focusSearchInput = () => getSearchInput().focus(); + const searchQuery = getSearchInput().value = getQueryByParam(queryParam); + + const fuse = new Fuse([], fuseOpts); + window.fetch('/index.json').then(response => { + response.text().then(searchData => { + fuse.setCollection(JSON.parse(searchData)); + searchQuery && search(searchQuery); + }); + }); + + const getUrl = (query) => { + const encodedQuery = encodeURIComponent(query); + const url = "/search/"; + return (encodedQuery) + ? `${url}?${queryParam}=${encodedQuery}` + : url; + }; + + let mark = new Mark( + document.querySelector( + selectors.resultContainer + ) + ); + + const app = new Vue({ + delimiters: ['{', '}'], + el: selectors.appContainer, + data: { + fuse: null, + results: [], + query: getQueryByParam(queryParam), + resultsForSearch: getQueryByParam(queryParam) + }, + mounted () { + this.fuse = fuse; + window.onpopstate = (evt) => { + this.query = evt.state.query; + }; + document.onkeyup = function (evt) { + evt.key === 's' && focusSearchInput(); + } + focusSearchInput(); + }, + watch: { + query () { + this.executeSearch(); + window.history.replaceState( + {query: this.query}, + null, + getUrl(this.query) + ); + } + }, + beforeUpdate: function () { + mark.unmark(); + }, + updated: function () { + this.$nextTick(function () { + mark = new Mark( + document.querySelector( + selectors.resultContainer + ) + ) + mark.mark(this.query.trim()); + }) + }, + methods: { + executeSearch: _.debounce(function () { + const trimmedQuery = this.query.trim(); + this.resultsForSearch = trimmedQuery; + this.results = (trimmedQuery) + ? this.fuse.search(trimmedQuery) + : []; + }, 250) + } + }); + + const search = query => { + app.results = fuse.search(query); + }; + + })(window, document); +}); diff --git a/resources/_gen/assets/js/js/search.js_a6b16e383456ca836455be60c03cf29c.json b/resources/_gen/assets/js/js/search.js_a6b16e383456ca836455be60c03cf29c.json new file mode 100644 index 0000000..1bcb351 --- /dev/null +++ b/resources/_gen/assets/js/js/search.js_a6b16e383456ca836455be60c03cf29c.json @@ -0,0 +1 @@ +{"Target":"search.js","MediaType":"application/javascript","Data":{}} \ No newline at end of file diff --git a/resources/_gen/assets/js/js/vendor/fetch-inject.min.js_dd4aa44ecb2f6765bf6d6d921265e95a.content b/resources/_gen/assets/js/js/vendor/fetch-inject.min.js_dd4aa44ecb2f6765bf6d6d921265e95a.content new file mode 100644 index 0000000..cc9024f --- /dev/null +++ b/resources/_gen/assets/js/js/vendor/fetch-inject.min.js_dd4aa44ecb2f6765bf6d6d921265e95a.content @@ -0,0 +1,2 @@ +/*! Fetch Inject v2.0.2 | Copyright (C) 2017–2018 Josh Habdas | @license Zlib */ +var fetchInject=function(){"use strict";const e=function(e,t,r,n,o,c,i){c=t.createElement(r),i=t.getElementsByTagName(r)[0],c.appendChild(t.createTextNode(n.text)),c.onload=o(n),i?i.parentNode.insertBefore(c,i):t.head.appendChild(c)};return function(t,r){if(!arguments.length)return Promise.reject(new ReferenceError("Failed to execute 'fetchInject': 1 argument required but only 0 present."));if(arguments[0]&&arguments[0].constructor!==Array)return Promise.reject(new TypeError("Failed to execute 'fetchInject': argument 1 must be of type 'Array'."));if(arguments[1]&&arguments[1].constructor!==Promise)return Promise.reject(new TypeError("Failed to execute 'fetchInject': argument 2 must be of type 'Promise'."));const n=[],o=r?[].concat(r):[],c=[];return t.forEach(e=>o.push(window.fetch(e).then(e=>[e.clone().text(),e.blob()]).then(e=>Promise.all(e).then(e=>{n.push({text:e[0],blob:e[1]})})))),Promise.all(o).then(()=>(n.forEach(t=>{c.push({then:r=>{t.blob.type.includes("text/css")?e(window,document,"style",t,r):e(window,document,"script",t,r)}})}),Promise.all(c)))}}(); diff --git a/resources/_gen/assets/js/js/vendor/fetch-inject.min.js_dd4aa44ecb2f6765bf6d6d921265e95a.json b/resources/_gen/assets/js/js/vendor/fetch-inject.min.js_dd4aa44ecb2f6765bf6d6d921265e95a.json new file mode 100644 index 0000000..8111c86 --- /dev/null +++ b/resources/_gen/assets/js/js/vendor/fetch-inject.min.js_dd4aa44ecb2f6765bf6d6d921265e95a.json @@ -0,0 +1 @@ +{"Target":"js/vendor/fetch-inject.min.271fcca93c585aa1dda0e90722d4492590af14384444faf9806e08e444aedd5f81810c8043ac177ddb06ce1ce64f4cb2be4016cf68dbae7f35abdd114494d24e.js","MediaType":"application/javascript","Data":{"Integrity":"sha512-Jx/MqTxYWqHdoOkHItRJJZCvFDhERPr5gG4I5ESu3V+BgQyAQ6wXfdsGzhzmT0yyvkAWz2jbrn81q90RRJTSTg=="}} \ No newline at end of file diff --git a/static/README.md b/static/README.md deleted file mode 100755 index 66fe23a..0000000 --- a/static/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# STATIC - -This directory contains your static files. -Each file inside this directory is mapped to /. - -Example: /static/robots.txt is mapped as /robots.txt. - -More information about the usage of this directory in the documentation: -https://nuxtjs.org/guide/assets#static - -**This directory is not required, you can delete it if you don't want to use it.** diff --git a/static/keybase.txt b/static/keybase.txt deleted file mode 100644 index 200e3a6..0000000 --- a/static/keybase.txt +++ /dev/null @@ -1,81 +0,0 @@ -================================================================== -https://keybase.io/rhnvrm --------------------------------------------------------------------- - -I hereby claim: - - * I am an admin of https://rohanverma.net - * I am rhnvrm (https://keybase.io/rhnvrm) on keybase. - * I have a public key with fingerprint 437E 4108 DCE7 EDDC 44BC B4C6 C8E8 5561 2971 CC42 - -To do so, I am signing this object: - -{ - "body": { - "key": { - "eldest_kid": "01013cea59ee8ee25ee8b46e604e85988c6e2ca5d553376e9a713a964ab4c7b44cd20a", - "fingerprint": "437e4108dce7eddc44bcb4c6c8e855612971cc42", - "host": "keybase.io", - "key_id": "c8e855612971cc42", - "kid": "01013cea59ee8ee25ee8b46e604e85988c6e2ca5d553376e9a713a964ab4c7b44cd20a", - "uid": "b4b014775662f71ffe9a4feda6cf3519", - "username": "rhnvrm" - }, - "merkle_root": { - "ctime": 1549826422, - "hash_meta": "34a7c384645e92d80a2bf39604981984cc0220656521eb8d237f5c3b30b7e4d1", - "seqno": 4737805 - }, - "revoke": { - "sig_ids": [ - "288ed9470cc534ef470baf830727c26e97ce4c92835c4f36376f9460ae77a4bf0f" - ] - }, - "service": { - "hostname": "rohanverma.net", - "protocol": "https:" - }, - "type": "web_service_binding", - "version": 1 - }, - "ctime": 1549826429, - "expire_in": 157680000, - "prev": "fa97c0c09d0f58104ac29f0316673477692f96693180a9a7ca6515b634308c7b", - "seqno": 12, - "tag": "signature" -} - -which yields the signature: - ------BEGIN PGP MESSAGE----- -Version: Keybase OpenPGP v2.0.80 -Comment: https://keybase.io/crypto - -yMK5AnicrVNdaBxVGE3UrSQx1qpYBfvguFYLabj/P4vaNhY0pcU+2Gps7XrnzjfZ -Idmd7exkk1C3L6LkoUUjKEJRCCqtYhULttoXa9C2bFLxL0EQJKhpK9RiUatgsN4J -/oD46Lzc+TnnfOeeM/eDzstb2ltPnt1iVu2c7mmdmqwPtWx/dLSxy/PjYNQr7PIG -YHGBwQBqaXEgCryChzDC1ILhGkABEO4WnwkQiIHiWikrgFjDA84plQK0kZgaLZjx -mZU+YzYgyHhdXhhV+iGpJlEldbKMSmAYqcCChCCwjPnWEYRVTpULTLTE1jLiiKW4 -ljGcOd/UoDuK3Tv3UFy09x/4/9n30KKcz3yEmZRcCBJKHIaOwEIIjLAh5VhnwBok -FVMGh05KlXpS9hpdXhmSgUEoJnGcZtHaNMoAmDOtiGCEuO2ZWqlYhtQ4HmVGWqqY -YBw0CRQyxA+pdp61wloxaxEhSHDBCQZfBYTKkFvqU+S7OAPsXNRgZyX2CkxSqRB3 -DhKoxwOQDa9F/S60mlfY5hGlINBMIms5ZRC6O9+EiiJJpCUuDWmBWU0U5ZaFVLiE -Qs0EMiClYX6IQu+RRjYsqUd2UTxr6a/dxyVTqUNSNt0VSJ2nahKnsY0H3bdSmlZr -hSyZdLSagYfBL/4pU/SjSuD+Esdw7FoUV1xSDvnv0HSXByPVKIFilCG4FAq5K5sD -dScZGmcfWaQDFHKFETOW6BBRLISkrkOhSaiF0BS7gF3v1giOuS8oo0i57v9JEbt+ -UtPvNF12FZMOJeA1Jo9tv6Kltb1lSe6y7Pi0tLdd8/ehGr7y0o4Dr+57biTfvP7j -LWLN+Sdnlu3Y3dl31T0fPmQ6XpvZdurF2emOJ9atvfjb02/37tk4Nrb8hc19n5xf -OHzL/Td3NaINN22d3+RPbj2y4qd369PL3ly47fSvnfe9N7Vm6frmwaMH7j58h5pY -S2fv3D3eWDm7aqL/jKzrr7+98Hz3dSvmH5+4N9r82VT+89lyfurCkWPr977cc7ot -Fy+8nox17JssnPnl2me/KC25+mi+u/Dzd/PH+Z653Nm+2195oPcjPP79xQd7xw9u -wnepnpXF481686vfV7+x7sd3co/Njdw6dwLPnMsd2nBq/0uX2pZG59Bw89D7T83l -Rz/98uRbz9zofbPxxMOraUB/CPYuv+EP1KGBbg== -=cgUx ------END PGP MESSAGE----- - -And finally, I am proving ownership of this host by posting or -appending to this document. - -View my publicly-auditable identity here: https://keybase.io/rhnvrm - -================================================================== diff --git a/store/README.md b/store/README.md deleted file mode 100755 index b9a0b7e..0000000 --- a/store/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# STORE - -This directory contains your Vuex Store files. -Vuex Store option is implemented in the Nuxt.js framework. -Creating a index.js file in this directory activate the option in the framework automatically. - -More information about the usage of this directory in the documentation: -https://nuxtjs.org/guide/vuex-store - -**This directory is not required, you can delete it if you don't want to use it.** diff --git a/tailwind.config.js b/tailwind.config.js deleted file mode 100644 index 3b48ef4..0000000 --- a/tailwind.config.js +++ /dev/null @@ -1,924 +0,0 @@ -/* - -Tailwind - The Utility-First CSS Framework - -A project by Adam Wathan (@adamwathan), Jonathan Reinink (@reinink), -David Hemphill (@davidhemphill) and Steve Schoger (@steveschoger). - -Welcome to the Tailwind config file. This is where you can customize -Tailwind specifically for your project. Don't be intimidated by the -length of this file. It's really just a big JavaScript object and -we've done our very best to explain each section. - -View the full documentation at https://tailwindcss.com. - -|------------------------------------------------------------------------------- -| The default config -|------------------------------------------------------------------------------- -| -| This variable contains the default Tailwind config. You don't have -| to use it, but it can sometimes be helpful to have available. For -| example, you may choose to merge your custom configuration -| values with some of the Tailwind defaults. -| -*/ - -// let defaultConfig = require('tailwindcss/defaultConfig')() - -/* -|------------------------------------------------------------------------------- -| Colors https://tailwindcss.com/docs/colors -|------------------------------------------------------------------------------- -| -| Here you can specify the colors used in your project. To get you started, -| we've provided a generous palette of great looking colors that are perfect -| for prototyping, but don't hesitate to change them for your project. You -| own these colors, nothing will break if you change everything about them. -| -| We've used literal color names ("red", "blue", etc.) for the default -| palette, but if you'd rather use functional names like "primary" and -| "secondary", or even a numeric scale like "100" and "200", go for it. -| -*/ - -let colors = { - 'transparent': 'transparent', - - 'black': '#22292f', - 'grey-darkest': '#3d4852', - 'grey-darker': '#606f7b', - 'grey-dark': '#8795a1', - 'grey': '#b8c2cc', - 'grey-light': '#dae1e7', - 'grey-lighter': '#f1f5f8', - 'grey-lightest': '#f8fafc', - 'white': '#ffffff', - - 'red-darkest': '#3b0d0c', - 'red-darker': '#621b18', - 'red-dark': '#cc1f1a', - 'red': '#e3342f', - 'red-light': '#ef5753', - 'red-lighter': '#f9acaa', - 'red-lightest': '#fcebea', - - 'orange-darkest': '#462a16', - 'orange-darker': '#613b1f', - 'orange-dark': '#de751f', - 'orange': '#f6993f', - 'orange-light': '#faad63', - 'orange-lighter': '#fcd9b6', - 'orange-lightest': '#fff5eb', - - 'yellow-darkest': '#453411', - 'yellow-darker': '#684f1d', - 'yellow-dark': '#f2d024', - 'yellow': '#ffed4a', - 'yellow-light': '#fff382', - 'yellow-lighter': '#fff9c2', - 'yellow-lightest': '#fcfbeb', - - 'green-darkest': '#0f2f21', - 'green-darker': '#1a4731', - 'green-dark': '#1f9d55', - 'green': '#38c172', - 'green-light': '#51d88a', - 'green-lighter': '#a2f5bf', - 'green-lightest': '#e3fcec', - - 'teal-darkest': '#0d3331', - 'teal-darker': '#20504f', - 'teal-dark': '#38a89d', - 'teal': '#4dc0b5', - 'teal-light': '#64d5ca', - 'teal-lighter': '#a0f0ed', - 'teal-lightest': '#e8fffe', - - 'blue-darkest': '#12283a', - 'blue-darker': '#1c3d5a', - 'blue-dark': '#2779bd', - 'blue': '#3490dc', - 'blue-light': '#6cb2eb', - 'blue-lighter': '#bcdefa', - 'blue-lightest': '#eff8ff', - - 'indigo-darkest': '#191e38', - 'indigo-darker': '#2f365f', - 'indigo-dark': '#5661b3', - 'indigo': '#6574cd', - 'indigo-light': '#7886d7', - 'indigo-lighter': '#b2b7ff', - 'indigo-lightest': '#e6e8ff', - - 'purple-darkest': '#21183c', - 'purple-darker': '#382b5f', - 'purple-dark': '#794acf', - 'purple': '#9561e2', - 'purple-light': '#a779e9', - 'purple-lighter': '#d6bbfc', - 'purple-lightest': '#f3ebff', - - 'pink-darkest': '#451225', - 'pink-darker': '#6f213f', - 'pink-dark': '#eb5286', - 'pink': '#f66d9b', - 'pink-light': '#fa7ea8', - 'pink-lighter': '#ffbbca', - 'pink-lightest': '#ffebef' -} - -module.exports = { - - /* - |----------------------------------------------------------------------------- - | Colors https://tailwindcss.com/docs/colors - |----------------------------------------------------------------------------- - | - | The color palette defined above is also assigned to the "colors" key of - | your Tailwind config. This makes it easy to access them in your CSS - | using Tailwind's config helper. For example: - | - | .error { color: config('colors.red') } - | - */ - - colors: colors, - - /* - |----------------------------------------------------------------------------- - | Screens https://tailwindcss.com/docs/responsive-design - |----------------------------------------------------------------------------- - | - | Screens in Tailwind are translated to CSS media queries. They define the - | responsive breakpoints for your project. By default Tailwind takes a - | "mobile first" approach, where each screen size represents a minimum - | viewport width. Feel free to have as few or as many screens as you - | want, naming them in whatever way you'd prefer for your project. - | - | Tailwind also allows for more complex screen definitions, which can be - | useful in certain situations. Be sure to see the full responsive - | documentation for a complete list of options. - | - | Class name: .{screen}:{utility} - | - */ - - screens: { - 'sm': '576px', - 'md': '768px', - 'lg': '992px', - 'xl': '1200px' - }, - - /* - |----------------------------------------------------------------------------- - | Fonts https://tailwindcss.com/docs/fonts - |----------------------------------------------------------------------------- - | - | Here is where you define your project's font stack, or font families. - | Keep in mind that Tailwind doesn't actually load any fonts for you. - | If you're using custom fonts you'll need to import them prior to - | defining them here. - | - | By default we provide a native font stack that works remarkably well on - | any device or OS you're using, since it just uses the default fonts - | provided by the platform. - | - | Class name: .font-{name} - | - */ - - fonts: { - 'sans': [ - 'Inter', - 'system-ui', - 'BlinkMacSystemFont', - '-apple-system', - 'Segoe UI', - 'Roboto', - 'Oxygen', - 'Ubuntu', - 'Cantarell', - 'Fira Sans', - 'Droid Sans', - 'Helvetica Neue', - 'sans-serif' - ], - 'serif': [ - 'Playfair Display', - 'Constantia', - 'Lucida Bright', - 'Lucidabright', - 'Lucida Serif', - 'Lucida', - 'DejaVu Serif', - 'Bitstream Vera Serif', - 'Liberation Serif', - 'Georgia', - 'serif' - ], - 'mono': [ - 'Menlo', - 'Monaco', - 'Consolas', - 'Liberation Mono', - 'Courier New', - 'monospace' - ] - }, - - /* - |----------------------------------------------------------------------------- - | Text sizes https://tailwindcss.com/docs/text-sizing - |----------------------------------------------------------------------------- - | - | Here is where you define your text sizes. Name these in whatever way - | makes the most sense to you. We use size names by default, but - | you're welcome to use a numeric scale or even something else - | entirely. - | - | By default Tailwind uses the "rem" unit type for most measurements. - | This allows you to set a root font size which all other sizes are - | then based on. That said, you are free to use whatever units you - | prefer, be it rems, ems, pixels or other. - | - | Class name: .text-{size} - | - */ - - textSizes: { - 'xs': '.75rem', // 12px - 'sm': '.875rem', // 14px - 'base': '1rem', // 16px - 'lg': '1.125rem', // 18px - 'xl': '1.25rem', // 20px - '2xl': '1.5rem', // 24px - '3xl': '1.875rem', // 30px - '4xl': '2.25rem', // 36px - '5xl': '3rem' // 48px - }, - - /* - |----------------------------------------------------------------------------- - | Font weights https://tailwindcss.com/docs/font-weight - |----------------------------------------------------------------------------- - | - | Here is where you define your font weights. We've provided a list of - | common font weight names with their respective numeric scale values - | to get you started. It's unlikely that your project will require - | all of these, so we recommend removing those you don't need. - | - | Class name: .font-{weight} - | - */ - - fontWeights: { - 'hairline': 100, - 'thin': 200, - 'light': 300, - 'normal': 400, - 'medium': 500, - 'semibold': 600, - 'bold': 700, - 'extrabold': 800, - 'black': 900 - }, - - /* - |----------------------------------------------------------------------------- - | Leading (line height) https://tailwindcss.com/docs/line-height - |----------------------------------------------------------------------------- - | - | Here is where you define your line height values, or as we call - | them in Tailwind, leadings. - | - | Class name: .leading-{size} - | - */ - - leading: { - 'none': 1, - 'tight': 1.25, - 'normal': 1.5, - 'loose': 2 - }, - - /* - |----------------------------------------------------------------------------- - | Tracking (letter spacing) https://tailwindcss.com/docs/letter-spacing - |----------------------------------------------------------------------------- - | - | Here is where you define your letter spacing values, or as we call - | them in Tailwind, tracking. - | - | Class name: .tracking-{size} - | - */ - - tracking: { - 'tight': '-0.05em', - 'normal': '0', - 'wide': '0.05em' - }, - - /* - |----------------------------------------------------------------------------- - | Text colors https://tailwindcss.com/docs/text-color - |----------------------------------------------------------------------------- - | - | Here is where you define your text colors. By default these use the - | color palette we defined above, however you're welcome to set these - | independently if that makes sense for your project. - | - | Class name: .text-{color} - | - */ - - textColors: colors, - - /* - |----------------------------------------------------------------------------- - | Background colors https://tailwindcss.com/docs/background-color - |----------------------------------------------------------------------------- - | - | Here is where you define your background colors. By default these use - | the color palette we defined above, however you're welcome to set - | these independently if that makes sense for your project. - | - | Class name: .bg-{color} - | - */ - - backgroundColors: colors, - - /* - |----------------------------------------------------------------------------- - | Background sizes https://tailwindcss.com/docs/background-size - |----------------------------------------------------------------------------- - | - | Here is where you define your background sizes. We provide some common - | values that are useful in most projects, but feel free to add other sizes - | that are specific to your project here as well. - | - | Class name: .bg-{size} - | - */ - - backgroundSize: { - 'auto': 'auto', - 'cover': 'cover', - 'contain': 'contain' - }, - - /* - |----------------------------------------------------------------------------- - | Border widths https://tailwindcss.com/docs/border-width - |----------------------------------------------------------------------------- - | - | Here is where you define your border widths. Take note that border - | widths require a special "default" value set as well. This is the - | width that will be used when you do not specify a border width. - | - | Class name: .border{-side?}{-width?} - | - */ - - borderWidths: { - default: '1px', - '0': '0', - '2': '2px', - '4': '4px', - '8': '8px' - }, - - /* - |----------------------------------------------------------------------------- - | Border colors https://tailwindcss.com/docs/border-color - |----------------------------------------------------------------------------- - | - | Here is where you define your border colors. By default these use the - | color palette we defined above, however you're welcome to set these - | independently if that makes sense for your project. - | - | Take note that border colors require a special "default" value set - | as well. This is the color that will be used when you do not - | specify a border color. - | - | Class name: .border-{color} - | - */ - - borderColors: global.Object.assign({ default: colors['grey-light'] }, colors), - - /* - |----------------------------------------------------------------------------- - | Border radius https://tailwindcss.com/docs/border-radius - |----------------------------------------------------------------------------- - | - | Here is where you define your border radius values. If a `default` radius - | is provided, it will be made available as the non-suffixed `.rounded` - | utility. - | - | If your scale includes a `0` value to reset already rounded corners, it's - | a good idea to put it first so other values are able to override it. - | - | Class name: .rounded{-side?}{-size?} - | - */ - - borderRadius: { - 'none': '0', - 'sm': '.125rem', - default: '.25rem', - 'lg': '.5rem', - 'full': '9999px' - }, - - /* - |----------------------------------------------------------------------------- - | Width https://tailwindcss.com/docs/width - |----------------------------------------------------------------------------- - | - | Here is where you define your width utility sizes. These can be - | percentage based, pixels, rems, or any other units. By default - | we provide a sensible rem based numeric scale, a percentage - | based fraction scale, plus some other common use-cases. You - | can, of course, modify these values as needed. - | - | - | It's also worth mentioning that Tailwind automatically escapes - | invalid CSS class name characters, which allows you to have - | awesome classes like .w-2/3. - | - | Class name: .w-{size} - | - */ - - width: { - 'auto': 'auto', - 'px': '1px', - '1': '0.25rem', - '2': '0.5rem', - '3': '0.75rem', - '4': '1rem', - '5': '1.25rem', - '6': '1.5rem', - '8': '2rem', - '10': '2.5rem', - '12': '3rem', - '16': '4rem', - '24': '6rem', - '32': '8rem', - '48': '12rem', - '64': '16rem', - '1/2': '50%', - '1/3': '33.33333%', - '2/3': '66.66667%', - '1/4': '25%', - '3/4': '75%', - '1/5': '20%', - '2/5': '40%', - '3/5': '60%', - '4/5': '80%', - '1/6': '16.66667%', - '5/6': '83.33333%', - 'full': '100%', - 'screen': '100vw' - }, - - /* - |----------------------------------------------------------------------------- - | Height https://tailwindcss.com/docs/height - |----------------------------------------------------------------------------- - | - | Here is where you define your height utility sizes. These can be - | percentage based, pixels, rems, or any other units. By default - | we provide a sensible rem based numeric scale plus some other - | common use-cases. You can, of course, modify these values as - | needed. - | - | Class name: .h-{size} - | - */ - - height: { - 'auto': 'auto', - 'px': '1px', - '1': '0.25rem', - '2': '0.5rem', - '3': '0.75rem', - '4': '1rem', - '5': '1.25rem', - '6': '1.5rem', - '8': '2rem', - '10': '2.5rem', - '12': '3rem', - '16': '4rem', - '24': '6rem', - '32': '8rem', - '48': '12rem', - '64': '16rem', - 'full': '100%', - 'screen': '100vh' - }, - - /* - |----------------------------------------------------------------------------- - | Minimum width https://tailwindcss.com/docs/min-width - |----------------------------------------------------------------------------- - | - | Here is where you define your minimum width utility sizes. These can - | be percentage based, pixels, rems, or any other units. We provide a - | couple common use-cases by default. You can, of course, modify - | these values as needed. - | - | Class name: .min-w-{size} - | - */ - - minWidth: { - '0': '0', - 'full': '100%' - }, - - /* - |----------------------------------------------------------------------------- - | Minimum height https://tailwindcss.com/docs/min-height - |----------------------------------------------------------------------------- - | - | Here is where you define your minimum height utility sizes. These can - | be percentage based, pixels, rems, or any other units. We provide a - | few common use-cases by default. You can, of course, modify these - | values as needed. - | - | Class name: .min-h-{size} - | - */ - - minHeight: { - '0': '0', - 'full': '100%', - 'screen': '100vh' - }, - - /* - |----------------------------------------------------------------------------- - | Maximum width https://tailwindcss.com/docs/max-width - |----------------------------------------------------------------------------- - | - | Here is where you define your maximum width utility sizes. These can - | be percentage based, pixels, rems, or any other units. By default - | we provide a sensible rem based scale and a "full width" size, - | which is basically a reset utility. You can, of course, - | modify these values as needed. - | - | Class name: .max-w-{size} - | - */ - - maxWidth: { - 'xs': '20rem', - 'sm': '30rem', - 'md': '40rem', - 'lg': '50rem', - 'xl': '60rem', - '2xl': '70rem', - '3xl': '80rem', - '4xl': '90rem', - '5xl': '100rem', - 'full': '100%' - }, - - /* - |----------------------------------------------------------------------------- - | Maximum height https://tailwindcss.com/docs/max-height - |----------------------------------------------------------------------------- - | - | Here is where you define your maximum height utility sizes. These can - | be percentage based, pixels, rems, or any other units. We provide a - | couple common use-cases by default. You can, of course, modify - | these values as needed. - | - | Class name: .max-h-{size} - | - */ - - maxHeight: { - 'full': '100%', - 'screen': '100vh' - }, - - /* - |----------------------------------------------------------------------------- - | Padding https://tailwindcss.com/docs/padding - |----------------------------------------------------------------------------- - | - | Here is where you define your padding utility sizes. These can be - | percentage based, pixels, rems, or any other units. By default we - | provide a sensible rem based numeric scale plus a couple other - | common use-cases like "1px". You can, of course, modify these - | values as needed. - | - | Class name: .p{side?}-{size} - | - */ - - padding: { - 'px': '1px', - '0': '0', - '1': '0.25rem', - '2': '0.5rem', - '3': '0.75rem', - '4': '1rem', - '5': '1.25rem', - '6': '1.5rem', - '8': '2rem', - '10': '2.5rem', - '12': '3rem', - '16': '4rem', - '20': '5rem', - '24': '6rem', - '32': '8rem' - }, - - /* - |----------------------------------------------------------------------------- - | Margin https://tailwindcss.com/docs/margin - |----------------------------------------------------------------------------- - | - | Here is where you define your margin utility sizes. These can be - | percentage based, pixels, rems, or any other units. By default we - | provide a sensible rem based numeric scale plus a couple other - | common use-cases like "1px". You can, of course, modify these - | values as needed. - | - | Class name: .m{side?}-{size} - | - */ - - margin: { - 'auto': 'auto', - 'px': '1px', - '0': '0', - '1': '0.25rem', - '2': '0.5rem', - '3': '0.75rem', - '4': '1rem', - '5': '1.25rem', - '6': '1.5rem', - '8': '2rem', - '10': '2.5rem', - '12': '3rem', - '16': '4rem', - '20': '5rem', - '24': '6rem', - '32': '8rem' - }, - - /* - |----------------------------------------------------------------------------- - | Negative margin https://tailwindcss.com/docs/negative-margin - |----------------------------------------------------------------------------- - | - | Here is where you define your negative margin utility sizes. These can - | be percentage based, pixels, rems, or any other units. By default we - | provide matching values to the padding scale since these utilities - | generally get used together. You can, of course, modify these - | values as needed. - | - | Class name: .-m{side?}-{size} - | - */ - - negativeMargin: { - 'px': '1px', - '0': '0', - '1': '0.25rem', - '2': '0.5rem', - '3': '0.75rem', - '4': '1rem', - '5': '1.25rem', - '6': '1.5rem', - '8': '2rem', - '10': '2.5rem', - '12': '3rem', - '16': '4rem', - '20': '5rem', - '24': '6rem', - '32': '8rem' - }, - - /* - |----------------------------------------------------------------------------- - | Shadows https://tailwindcss.com/docs/shadows - |----------------------------------------------------------------------------- - | - | Here is where you define your shadow utilities. As you can see from - | the defaults we provide, it's possible to apply multiple shadows - | per utility using comma separation. - | - | If a `default` shadow is provided, it will be made available as the non- - | suffixed `.shadow` utility. - | - | Class name: .shadow-{size?} - | - */ - - shadows: { - default: '0 2px 4px 0 rgba(0,0,0,0.10)', - 'md': '0 4px 8px 0 rgba(0,0,0,0.12), 0 2px 4px 0 rgba(0,0,0,0.08)', - 'lg': '0 15px 30px 0 rgba(0,0,0,0.11), 0 5px 15px 0 rgba(0,0,0,0.08)', - 'inner': 'inset 0 2px 4px 0 rgba(0,0,0,0.06)', - 'outline': '0 0 0 3px rgba(52,144,220,0.5)', - 'none': 'none' - }, - - /* - |----------------------------------------------------------------------------- - | Z-index https://tailwindcss.com/docs/z-index - |----------------------------------------------------------------------------- - | - | Here is where you define your z-index utility values. By default we - | provide a sensible numeric scale. You can, of course, modify these - | values as needed. - | - | Class name: .z-{index} - | - */ - - zIndex: { - 'auto': 'auto', - '0': 0, - '10': 10, - '20': 20, - '30': 30, - '40': 40, - '50': 50 - }, - - /* - |----------------------------------------------------------------------------- - | Opacity https://tailwindcss.com/docs/opacity - |----------------------------------------------------------------------------- - | - | Here is where you define your opacity utility values. By default we - | provide a sensible numeric scale. You can, of course, modify these - | values as needed. - | - | Class name: .opacity-{name} - | - */ - - opacity: { - '0': '0', - '25': '.25', - '50': '.5', - '75': '.75', - '100': '1' - }, - - /* - |----------------------------------------------------------------------------- - | SVG fill https://tailwindcss.com/docs/svg - |----------------------------------------------------------------------------- - | - | Here is where you define your SVG fill colors. By default we just provide - | `fill-current` which sets the fill to the current text color. This lets you - | specify a fill color using existing text color utilities and helps keep the - | generated CSS file size down. - | - | Class name: .fill-{name} - | - */ - - svgFill: { - 'current': 'currentColor' - }, - - /* - |----------------------------------------------------------------------------- - | SVG stroke https://tailwindcss.com/docs/svg - |----------------------------------------------------------------------------- - | - | Here is where you define your SVG stroke colors. By default we just provide - | `stroke-current` which sets the stroke to the current text color. This lets - | you specify a stroke color using existing text color utilities and helps - | keep the generated CSS file size down. - | - | Class name: .stroke-{name} - | - */ - - svgStroke: { - 'current': 'currentColor' - }, - - /* - |----------------------------------------------------------------------------- - | Modules https://tailwindcss.com/docs/configuration#modules - |----------------------------------------------------------------------------- - | - | Here is where you control which modules are generated and what variants are - | generated for each of those modules. - | - | Currently supported variants: - | - responsive - | - hover - | - focus - | - focus-within - | - active - | - group-hover - | - | To disable a module completely, use `false` instead of an array. - | - */ - - modules: { - appearance: ['responsive'], - backgroundAttachment: ['responsive'], - backgroundColors: ['responsive', 'hover', 'focus'], - backgroundPosition: ['responsive'], - backgroundRepeat: ['responsive'], - backgroundSize: ['responsive'], - borderCollapse: [], - borderColors: ['responsive', 'hover', 'focus'], - borderRadius: ['responsive'], - borderStyle: ['responsive'], - borderWidths: ['responsive'], - cursor: ['responsive'], - display: ['responsive'], - flexbox: ['responsive'], - float: ['responsive'], - fonts: ['responsive'], - fontWeights: ['responsive', 'hover', 'focus'], - height: ['responsive'], - leading: ['responsive'], - lists: ['responsive'], - margin: ['responsive'], - maxHeight: ['responsive'], - maxWidth: ['responsive'], - minHeight: ['responsive'], - minWidth: ['responsive'], - negativeMargin: ['responsive'], - opacity: ['responsive'], - outline: ['focus'], - overflow: ['responsive'], - padding: ['responsive'], - pointerEvents: ['responsive'], - position: ['responsive'], - resize: ['responsive'], - shadows: ['responsive', 'hover', 'focus'], - svgFill: [], - svgStroke: [], - tableLayout: ['responsive'], - textAlign: ['responsive'], - textColors: ['responsive', 'hover', 'focus'], - textSizes: ['responsive'], - textStyle: ['responsive', 'hover', 'focus'], - tracking: ['responsive'], - userSelect: ['responsive'], - verticalAlign: ['responsive'], - visibility: ['responsive'], - whitespace: ['responsive'], - width: ['responsive'], - zIndex: ['responsive'] - }, - - /* - |----------------------------------------------------------------------------- - | Plugins https://tailwindcss.com/docs/plugins - |----------------------------------------------------------------------------- - | - | Here is where you can register any plugins you'd like to use in your - | project. Tailwind's built-in `container` plugin is enabled by default to - | give you a Bootstrap-style responsive container component out of the box. - | - | Be sure to view the complete plugin documentation to learn more about how - | the plugin system works. - | - */ - - plugins: [ - require('tailwindcss/plugins/container')({ - // center: true, - // padding: '1rem', - }) - ], - - /* - |----------------------------------------------------------------------------- - | Advanced Options https://tailwindcss.com/docs/configuration#options - |----------------------------------------------------------------------------- - | - | Here is where you can tweak advanced configuration options. We recommend - | leaving these options alone unless you absolutely need to change them. - | - */ - - options: { - prefix: '', - important: false, - separator: ':' - } - -} diff --git a/themes/after-dark/CHANGELOG.md b/themes/after-dark/CHANGELOG.md new file mode 100644 index 0000000..6ec4dbe --- /dev/null +++ b/themes/after-dark/CHANGELOG.md @@ -0,0 +1,1411 @@ +# Change Log + +All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + + +## [7.2.1](https://git.habd.as/comfusion/after-dark/compare/v7.2.0...v7.2.1) (2019-02-22) + + +### Bug Fixes + +* **layout/default:** workaround hugo bug on eval len(nil) go tmpl ([258c747](https://git.habd.as/comfusion/after-dark/commits/258c747)), closes [#135](https://git.habd.as/comfusion/after-dark/issues/135) + + + + +# [7.2.0](https://git.habd.as/comfusion/after-dark/compare/v7.0.1...v7.2.0) (2019-02-20) + + +### Features + +* **help/homepage:** update security featurette ([dcd0199](https://git.habd.as/comfusion/after-dark/commits/dcd0199)) +* **layouts:** add rss with full content ([fe99466](https://git.habd.as/comfusion/after-dark/commits/fe99466)) + + + +# [7.1.0](https://git.habd.as/comfusion/after-dark/compare/v7.0.3...v7.1.0) (2019-02-18) + + +### Features + +* **feature/security:** add content security policy ([de24354](https://git.habd.as/comfusion/after-dark/commits/de24354) + +### Bug Fixes + + +## [7.0.3](https://git.habd.as/comfusion/after-dark/compare/v7.0.2...v7.0.3) (2019-02-12) + +* **layout/default:** delegate module config to modules ([79f2a13](https://git.habd.as/comfusion/after-dark/commit/79f2a13)) + + +### Bug Fixes + + +## [7.0.2](https://git.habd.as/comfusion/after-dark/compare/v7.0.1...v7.0.2) (2019-02-12) + +* **feature/security:** restore gpg signing of commits and tags + + + +## [7.0.1](https://git.habd.as/comfusion/after-dark/compare/v7.0.0...v7.0.1) (2019-02-10) + + +### Bug Fixes + +* **partials/powered-by:** point to expected directory of refactored file ([f32207f](https://git.habd.as/comfusion/after-dark/commits/f32207f)) + + + + +# [7.0.0](https://git.habd.as/comfusion/after-dark/compare/v6.16.1...v7.0.0) (2019-02-08) + + +### Bug Fixes + +* **assets/css:** normalize base font-size, large screens ([862da61](https://git.habd.as/comfusion/after-dark/commits/862da61)) + + +### Features + +* **feature/section-menu:** add support for multiple nav menus ([427f9d2](https://git.habd.as/comfusion/after-dark/commits/427f9d2)) +* **feature/table-of-contents:** add native smooth-scroll ([94b13a1](https://git.habd.as/comfusion/after-dark/commits/94b13a1)), closes [#43](https://git.habd.as/comfusion/after-dark/issues/43) + + +### BREAKING CHANGES + +* **feature/section-menu:** removes disqus entirely, previously a deprecated feature + + + + +## [6.16.1](https://git.habd.as/comfusion/after-dark/compare/v6.16.0...v6.16.1) (2019-01-24) + + +### Bug Fixes + +* **feature/post-images:** fix yandex validation error ([93cc90f](https://git.habd.as/comfusion/after-dark/commits/93cc90f)) +* **feature/post-images:** zap extra whitespaces ([32767d9](https://git.habd.as/comfusion/after-dark/commits/32767d9)) + + + + +# [6.16.0](https://git.habd.as/comfusion/after-dark/compare/v6.15.1...v6.16.0) (2019-01-23) + + +### Bug Fixes + +* **assets/css:** normalize samp element font size with pre ([c42ccba](https://git.habd.as/comfusion/after-dark/commits/c42ccba)) +* **assets/css:** normalize whitespace around toc when post images present ([c3f37a5](https://git.habd.as/comfusion/after-dark/commits/c3f37a5)) + + +### Features + +* **feature/fuzzy-search:** add aria landmark to search form ([7a9b75a](https://git.habd.as/comfusion/after-dark/commits/7a9b75a)) +* **feature/post-images:** add image captions and structured data ([41f41e7](https://git.habd.as/comfusion/after-dark/commits/41f41e7)) +* **feature/section-menu:** add support for html link decoration ([7634b42](https://git.habd.as/comfusion/after-dark/commits/7634b42)) +* **shortcodes/external:** add shorthand usage for named anchors ([243d15a](https://git.habd.as/comfusion/after-dark/commits/243d15a)) + + + + +## [6.15.1](https://git.habd.as/comfusion/after-dark/compare/v6.15.0...v6.15.1) (2018-12-28) + + + + +# [6.15.0](https://git.habd.as/comfusion/after-dark/compare/v6.14.0...v6.15.0) (2018-12-11) + + +### Bug Fixes + +* **assets/theme:** normalize blockquote line-height with rest of document ([20ec883](https://git.habd.as/comfusion/after-dark/commits/20ec883)) + + +### Features + +* **layouts/shortcodes:** add grid and cell flexbox shortcode & snippet ([5bc322b](https://git.habd.as/comfusion/after-dark/commits/5bc322b)), closes [#67](https://git.habd.as/comfusion/after-dark/issues/67) +* **layouts/shortcodes:** add select shortcode, docs and example use ([71fff83](https://git.habd.as/comfusion/after-dark/commits/71fff83)) + + + + +# [6.14.0](https://git.habd.as/comfusion/after-dark/compare/v6.13.5...v6.14.0) (2018-11-21) + + +### Features + +* **layouts/*:** add cookie disclaimer ([e8d9f68](https://git.habd.as/comfusion/after-dark/commits/e8d9f68)) + + + + +## [6.13.5](https://git.habd.as/comfusion/after-dark/compare/v6.13.4...v6.13.5) (2018-11-19) + +* **package:** updated tagline and software purpose + + +## [6.13.4](https://git.habd.as/comfusion/after-dark/compare/v6.13.3...v6.13.4) (2018-11-05) + + +### Bug Fixes + +* **assets/css:** normalize size of help text on small viewports ([bc0e33f](https://git.habd.as/comfusion/after-dark/commits/bc0e33f)) + + +### Reverts + +* **help/home:** disable button wrapped in anchor tag ([88e4b17](https://git.habd.as/comfusion/after-dark/commits/88e4b17)) + + + + +## [6.13.3](https://git.habd.as/comfusion/after-dark/compare/v6.13.2...v6.13.3) (2018-10-18) + + +### Bug Fixes + +* **archetypes/validate:** swap string method for sha trim behavior ([70e2c47](https://git.habd.as/comfusion/after-dark/commits/70e2c47)), closes [#90](https://git.habd.as/comfusion/after-dark/issues/90) +* **assets/css:** unset ua default figure element margin ([46326bf](https://git.habd.as/comfusion/after-dark/commits/46326bf)) + + + + +## [6.13.2](https://git.habd.as/comfusion/after-dark/compare/v6.13.1...v6.13.2) (2018-10-15) + + +### Bug Fixes + +* **shortcode/navmenu:** improve microdata semantics & add test tool to docs ([4913934](https://git.habd.as/comfusion/after-dark/commits/4913934)), closes [#100](https://git.habd.as/comfusion/after-dark/issues/100) + + + + +## [6.13.1](https://git.habd.as/comfusion/after-dark/compare/v6.13.0...v6.13.1) (2018-10-12) + + + + +# [6.13.0](https://git.habd.as/comfusion/after-dark/compare/v6.12.7...v6.13.0) (2018-10-05) + + +### Bug Fixes + +* **layouts/partials:** add main menu display condition ([a8fb1cb](https://git.habd.as/comfusion/after-dark/commits/a8fb1cb)), closes [#78](https://git.habd.as/comfusion/after-dark/issues/78) +* **shortcodes/button:** allow name attribute & pass id as expected ([7aca084](https://git.habd.as/comfusion/after-dark/commits/7aca084)) + + +### Features + +* **module/toxic-swamp:** integrate module beta ([8f0bc30](https://git.habd.as/comfusion/after-dark/commits/8f0bc30)) +* **shortcodes/button:** add custom class support ([eb8f2db](https://git.habd.as/comfusion/after-dark/commits/eb8f2db)) + + + + +## [6.12.7](https://git.habd.as/comfusion/after-dark/compare/v6.12.6...v6.12.7) (2018-09-26) + + + + +## [6.12.6](https://git.habd.as/comfusion/after-dark/compare/v6.12.5...v6.12.6) (2018-09-25) + + + + +## [6.12.5](https://git.habd.as/comfusion/after-dark/compare/v6.12.4...v6.12.5) (2018-09-24) + + + + +## [6.12.4](https://git.habd.as/comfusion/after-dark/compare/v6.12.3...v6.12.4) (2018-09-23) + + +### Bug Fixes + +* **help/home:** add missing query string param to search link ([5b842f4](https://git.habd.as/comfusion/after-dark/commits/5b842f4)) + + + + +## [6.12.3](https://git.habd.as/comfusion/after-dark/compare/v6.12.2...v6.12.3) (2018-09-22) + + + + +## [6.12.2](https://git.habd.as/comfusion/after-dark/compare/v6.12.1...v6.12.2) (2018-09-22) + + + + +## [6.12.1](https://git.habd.as/comfusion/after-dark/compare/v6.12.0...v6.12.1) (2018-09-22) + + + + +# [6.12.0](https://git.habd.as/comfusion/after-dark/compare/v6.11.2...v6.12.0) (2018-09-22) + + +### Features + +* **scripts/upgrade:** prompt for update if metadata cannot be found ([b3a62ff](https://git.habd.as/comfusion/after-dark/commits/b3a62ff)) + + + + +## [6.11.2](https://git.habd.as/comfusion/after-dark/compare/v6.11.1...v6.11.2) (2018-09-22) + + +### Bug Fixes + +* **scripts:** add || to server shutdown ([f834a0d](https://git.habd.as/comfusion/after-dark/commits/f834a0d)) + + + + +## [6.11.1](https://git.habd.as/comfusion/after-dark/compare/v6.11.0...v6.11.1) (2018-09-22) + + +### Bug Fixes + +* **onboarding:** add explicit site port setting in install script ([64fefb2](https://git.habd.as/comfusion/after-dark/commits/64fefb2)) +* **onboarding:** serve site not help when starting site from installer ([384895b](https://git.habd.as/comfusion/after-dark/commits/384895b)) + + + + +# [6.11.0](https://git.habd.as/comfusion/after-dark/compare/v6.10.1...v6.11.0) (2018-09-21) + + +### Features + +* **onboarding:** streamline installation ([8a1cfee](https://git.habd.as/comfusion/after-dark/commits/8a1cfee)) + + + + +## [6.10.1](https://git.habd.as/comfusion/after-dark/compare/v6.10.0...v6.10.1) (2018-09-19) + + +### Bug Fixes + +* **help/home:** add performance info & undocumented features ([14c1faa](https://git.habd.as/comfusion/after-dark/commits/14c1faa)) + + + + +# [6.10.0](https://git.habd.as/comfusion/after-dark/compare/v6.9.7...v6.10.0) (2018-09-14) + + +### Features + +* **shortcodes:** add navmenu ([3e53c48](https://git.habd.as/comfusion/after-dark/commits/3e53c48)), closes [#78](https://git.habd.as/comfusion/after-dark/issues/78) + + + + +## [6.9.7](https://git.habd.as/comfusion/after-dark/compare/v6.9.6...v6.9.7) (2018-09-14) + + +### Bug Fixes + +* **layouts/partials:** move navmenu snippet into theme ([e432e5c](https://git.habd.as/comfusion/after-dark/commits/e432e5c)), closes [#78](https://git.habd.as/comfusion/after-dark/issues/78) + + + + +## [6.9.6](https://git.habd.as/comfusion/after-dark/compare/v6.9.5...v6.9.6) (2018-09-12) + + +### Bug Fixes + +* **archetypes:** fix broken links in post archetype ([9a46e86](https://git.habd.as/comfusion/after-dark/commits/9a46e86)) + + + + +## [6.9.5](https://git.habd.as/comfusion/after-dark/compare/v6.9.4...v6.9.5) (2018-09-12) + + +### Bug Fixes + +* **archetypes:** prevent internal links from opening in new window ([a5237a8](https://git.habd.as/comfusion/after-dark/commits/a5237a8)) + + + + +## [6.9.4](https://git.habd.as/comfusion/after-dark/compare/v6.9.3...v6.9.4) (2018-09-12) + + +### Bug Fixes + +* **archetypes:** close tag body on last external shortcode ([aa97ed3](https://git.habd.as/comfusion/after-dark/commits/aa97ed3)) + + + + +## [6.9.3](https://git.habd.as/comfusion/after-dark/compare/v6.9.2...v6.9.3) (2018-09-12) + + +### Bug Fixes + +* **scripts:** automatically stop running help servers on upgrade ([b6b9a56](https://git.habd.as/comfusion/after-dark/commits/b6b9a56)) + + + + +## [6.9.2](https://git.habd.as/comfusion/after-dark/compare/v6.9.1...v6.9.2) (2018-09-12) + + +### Bug Fixes + +* **archetypes:** default posts to display as published content ([b4fd2bf](https://git.habd.as/comfusion/after-dark/commits/b4fd2bf)) + + + + +## [6.9.1](https://git.habd.as/comfusion/after-dark/compare/v6.9.0...v6.9.1) (2018-09-12) + + + + +# [6.9.0](https://git.habd.as/comfusion/after-dark/compare/v6.8.0...v6.9.0) (2018-09-12) + + +### Features + +* **help:** multipage help docs ([0446f50](https://git.habd.as/comfusion/after-dark/commits/0446f50)), closes [#61](https://git.habd.as/comfusion/after-dark/issues/61) + + + + +# [6.8.0](https://git.habd.as/comfusion/after-dark/compare/v6.7.9...v6.8.0) (2018-09-08) + + +### Bug Fixes + +* **components:** correct help block class attr behavior ([8336029](https://git.habd.as/comfusion/after-dark/commits/8336029)) +* **help:** rename 404 to error page ([2191740](https://git.habd.as/comfusion/after-dark/commits/2191740)) +* **layouts:** remove navmenu from help layout ([4934a0c](https://git.habd.as/comfusion/after-dark/commits/4934a0c)) +* **partials:** make button onclick handler work as expected ([9998957](https://git.habd.as/comfusion/after-dark/commits/9998957)) +* **shortcodes:** remove insignificant spaces after external links ([1190b94](https://git.habd.as/comfusion/after-dark/commits/1190b94)) +* **shortcodes:** remove standard link treatment from figures ([abade6f](https://git.habd.as/comfusion/after-dark/commits/abade6f)) +* **styles:** leftpad orderd lists ([579404e](https://git.habd.as/comfusion/after-dark/commits/579404e)) + + +### Features + +* **layouts/search:** and placeholder and allow basic customization ([e4df3a5](https://git.habd.as/comfusion/after-dark/commits/e4df3a5)) +* **shortcodes:** add form attr to button ([f04ea28](https://git.habd.as/comfusion/after-dark/commits/f04ea28)) +* **shortcodes:** add id attribute for forms ([10f1024](https://git.habd.as/comfusion/after-dark/commits/10f1024)) +* **shortcodes:** add navmenu navigational aid ([aa46ed3](https://git.habd.as/comfusion/after-dark/commits/aa46ed3)) +* **shortcodes:** add title attr to external ([ce451e4](https://git.habd.as/comfusion/after-dark/commits/ce451e4)) +* **shortcodes:** add type attribute for external links ([d80b1f3](https://git.habd.as/comfusion/after-dark/commits/d80b1f3)) +* **shortcodes:** add value attr to button ([fbf744e](https://git.habd.as/comfusion/after-dark/commits/fbf744e)) +* **shortcodes:** allow anonymous blockquotes ([3ad1f04](https://git.habd.as/comfusion/after-dark/commits/3ad1f04)) +* **shortcodes:** allow button disablement ([f145780](https://git.habd.as/comfusion/after-dark/commits/f145780)), closes [#65](https://git.habd.as/comfusion/after-dark/issues/65) +* **shortcodes:** trim whitespace in id attributes ([523b2a1](https://git.habd.as/comfusion/after-dark/commits/523b2a1)) + + +### Performance Improvements + +* **search:** increase specificity of v-cloak declaration ([35eed67](https://git.habd.as/comfusion/after-dark/commits/35eed67)) + + + + +## [6.7.9](https://git.habd.as/comfusion/after-dark/compare/v6.7.8...v6.7.9) (2018-09-07) + +### Bug Fixes + +* **styles:** prevent jumping scrollbar in windows ([9d2beec](https://git.habd.as/comfusion/after-dark/commit/9d2beec93c72b6145507f850689eae3a64cf22f0)), closes #72 (thanks @tkalpakidis) + + +## [6.7.8](https://git.habd.as/comfusion/after-dark/compare/v6.7.7...v6.7.8) (2018-08-30) + + + + +## [6.7.7](https://git.habd.as/comfusion/after-dark/compare/v6.7.6...v6.7.7) (2018-08-27) + + +### Bug Fixes + +* **help:** change 404 page to error page and improve script perf ([f95aaa3](https://git.habd.as/comfusion/after-dark/commits/f95aaa3)), closes [#43](https://git.habd.as/comfusion/after-dark/issues/43) + + + + +## [6.7.6](https://git.habd.as/comfusion/after-dark/compare/v6.7.5...v6.7.6) (2018-08-27) + + +### Bug Fixes + +* **scripts:** always regnerate help docs ([90b0f21](https://git.habd.as/comfusion/after-dark/commits/90b0f21)) + + + + +## [6.7.5](https://git.habd.as/comfusion/after-dark/compare/v6.7.4...v6.7.5) (2018-08-27) + + +### Bug Fixes + +* **scripts:** resolve help doc path lookups when no custom content dir ([300add1](https://git.habd.as/comfusion/after-dark/commits/300add1)) + + + + +## [6.7.4](https://git.habd.as/comfusion/after-dark/compare/v6.7.3...v6.7.4) (2018-08-27) + + +### Bug Fixes + +* **scripts:** remove help before generating on upgrade ([56b7543](https://git.habd.as/comfusion/after-dark/commits/56b7543)) + + + + +## [6.7.3](https://git.habd.as/comfusion/after-dark/compare/v6.7.2...v6.7.3) (2018-08-27) + + +### Bug Fixes + +* **scripts:** address error generating docs after upgrade ([3119918](https://git.habd.as/comfusion/after-dark/commits/3119918)) + + + + +## [6.7.2](https://git.habd.as/comfusion/after-dark/compare/v6.7.1...v6.7.2) (2018-08-27) + + +### Bug Fixes + +* **scripts:** resolve tar cd issue ([5fa2591](https://git.habd.as/comfusion/after-dark/commits/5fa2591)) + + + + +## [6.7.1](https://git.habd.as/comfusion/after-dark/compare/v6.7.0...v6.7.1) (2018-08-27) + + +### Bug Fixes + +* **scripts:** resolve syntax bugs in script ([f7bfb04](https://git.habd.as/comfusion/after-dark/commits/f7bfb04)) + + + + +# [6.7.0](https://git.habd.as/comfusion/after-dark/compare/v6.6.4...v6.7.0) (2018-08-27) + + +### Bug Fixes + +* **scripts:** update install to place theme metadata in theme data folder ([66168a1](https://git.habd.as/comfusion/after-dark/commits/66168a1)), closes [#59](https://git.habd.as/comfusion/after-dark/issues/59) + + +### Features + +* **scripts:** add theme upgrade script ([6415250](https://git.habd.as/comfusion/after-dark/commits/6415250)), closes [#59](https://git.habd.as/comfusion/after-dark/issues/59) +* **scripts:** support custom content dirs in config file ([adf90bc](https://git.habd.as/comfusion/after-dark/commits/adf90bc)), closes [#59](https://git.habd.as/comfusion/after-dark/issues/59) + + + + +## [6.6.4](https://git.habd.as/comfusion/after-dark/compare/v6.6.3...v6.6.4) (2018-08-27) + +### Security + +* **build:** enclose release tag sha512 in delimeters +([543d32d](https://git.habd.as/comfusion/after-dark/commit/543d32d)) + + +## [6.6.3](https://git.habd.as/comfusion/after-dark/compare/v6.6.1...v6.6.3) (2018-08-27) + +### Security + +* **build:** append sha512 to release tag and self-sign +([112f616](https://git.habd.as/comfusion/after-dark/commits/112f616)) + + +## [6.6.2](https://git.habd.as/comfusion/after-dark/compare/v6.6.1...v6.6.2) (2018-08-26) + +### Security + +* **build:** add sha512 digest to git tags and gpg sign them +([35457ab](https://git.habd.as/comfusion/after-dark/commits/35457ab)) + + +## [6.6.1](https://git.habd.as/comfusion/after-dark/compare/v6.6.0...v6.6.1) (2018-08-26) + + +### Bug Fixes + +* **snippets:** reverse logic for external link styling ([0fcf238](https://git.habd.as/comfusion/after-dark/commits/0fcf238)) + + + + +# [6.6.0](https://git.habd.as/comfusion/after-dark/compare/v6.5.2...v6.6.0) (2018-08-25) + + +### Features + +* **help:** update and run help anytime using included script ([206bfdc](https://git.habd.as/comfusion/after-dark/commits/206bfdc)) +* **snippets:** add external link snippet ([7c885f3](https://git.habd.as/comfusion/after-dark/commits/7c885f3)), closes [#48](https://git.habd.as/comfusion/after-dark/issues/48) + + + + +## [6.5.2](https://git.habd.as/comfusion/after-dark/compare/v6.5.1...v6.5.2) (2018-08-24) + + +### Bug Fixes + +* **install:** wait 1 second before serving help for docs to expire ([8e9e312](https://git.habd.as/comfusion/after-dark/commits/8e9e312)) + + + + +## [6.5.1](https://git.habd.as/comfusion/after-dark/compare/v6.5.0...v6.5.1) (2018-08-24) + + +### Bug Fixes + +* **install:** remove unexpected line in theme config ([a5eb197](https://git.habd.as/comfusion/after-dark/commits/a5eb197)) + + + + +# [6.5.0](https://git.habd.as/comfusion/after-dark/compare/v6.4.1...v6.5.0) (2018-08-24) + + +### Bug Fixes + +* **install:** stop copying all archetypes to site ([210412b](https://git.habd.as/comfusion/after-dark/commits/210412b)), closes [#45](https://git.habd.as/comfusion/after-dark/issues/45) + + +### Features + +* **install:** faux install validation using npm sha512 digest ([5a8dec0](https://git.habd.as/comfusion/after-dark/commits/5a8dec0)), closes [#33](https://git.habd.as/comfusion/after-dark/issues/33) +* **snippets:** alert user on invalid autocomplete value ([1105e20](https://git.habd.as/comfusion/after-dark/commits/1105e20)), closes [#46](https://git.habd.as/comfusion/after-dark/issues/46) + + + + +## [6.4.1](https://git.habd.as/comfusion/after-dark/compare/v6.4.0...v6.4.1) (2018-08-22) + + + + +# [6.4.0](https://git.habd.as/comfusion/after-dark/compare/v6.3.0...v6.4.0) (2018-08-20) + + +### Bug Fixes + +* **install:** remove useful snippets content ([c224977](https://git.habd.as/comfusion/after-dark/commits/c224977)) + + +### Features + +* **install:** provide welcome post with online help ([c8f729a](https://git.habd.as/comfusion/after-dark/commits/c8f729a)) + + + + +# [6.3.0](https://git.habd.as/comfusion/after-dark/compare/v6.2.0...v6.3.0) (2018-08-19) + + +### Bug Fixes + +* **snippets:** add name attribute to form ([078ee4d](https://git.habd.as/comfusion/after-dark/commits/078ee4d)) + + +### Features + +* **install:** add installation challenge ([9b6106c](https://git.habd.as/comfusion/after-dark/commits/9b6106c)) + + + + +# [6.2.0](https://git.habd.as/comfusion/after-dark/compare/v6.1.1...v6.2.0) (2018-08-18) + + +### Bug Fixes + +* **bin:** remove preview script ([5ac1c12](https://git.habd.as/comfusion/after-dark/commits/5ac1c12)), closes [#38](https://git.habd.as/comfusion/after-dark/issues/38) +* **layouts:** stop outputting trim color if none present ([fe58bed](https://git.habd.as/comfusion/after-dark/commits/fe58bed)) + + +### Features + +* **layouts:** provide form builder snippets ([c49d086](https://git.habd.as/comfusion/after-dark/commits/c49d086)) + + + + +## [6.1.1](https://git.habd.as/comfusion/after-dark/compare/v6.1.0...v6.1.1) (2018-08-14) + + +### Bug Fixes + +* **personalization:** rename accent color to trim color ([88cd373](https://git.habd.as/comfusion/after-dark/commits/88cd373)) + + + + +# [6.1.0](https://git.habd.as/comfusion/after-dark/compare/v6.0.1...v6.1.0) (2018-08-13) + + +### Bug Fixes + +* **layouts:** move inline-level content in navs inside

    ([1b0187d](https://git.habd.as/comfusion/after-dark/commits/1b0187d)) + + +### Features + +* **personalization:** add customizable accent colors ([bf251a6](https://git.habd.as/comfusion/after-dark/commits/bf251a6)) + + + + +## [6.0.1](https://git.habd.as/comfusion/after-dark/compare/v6.0.0...v6.0.1) (2018-08-12) + + +### Bug Fixes + +* **layouts/search:** unblock blocking scripts and add command terminators ([7802937](https://git.habd.as/comfusion/after-dark/commits/7802937)), closes [#14](https://git.habd.as/comfusion/after-dark/issues/14) + + + + +# [6.0.0](https://git.habd.as/comfusion/after-dark/compare/v5.5.1...v6.0.0) (2018-08-12) + + +### Bug Fixes + +* **shortcodes:** remove privacytube and coub shortcodes ([ada8286](https://git.habd.as/comfusion/after-dark/commits/ada8286)), closes [#35](https://git.habd.as/comfusion/after-dark/issues/35) + + +### BREAKING CHANGES + +* **shortcodes:** shortcodes removed must now be copied to the theme, if used + + + + +## [5.5.1](https://git.habd.as/comfusion/after-dark/compare/v5.5.0...v5.5.1) (2018-08-11) + + +### Bug Fixes + +* **install:** restore android support ([d3b2ab0](https://git.habd.as/comfusion/after-dark/commits/d3b2ab0)), closes [#25](https://git.habd.as/comfusion/after-dark/issues/25) + + + + +# [5.5.0](https://git.habd.as/comfusion/after-dark/compare/v5.4.0...v5.5.0) (2018-08-10) + + +### Bug Fixes + +* **assets:** stop treating all permalinks as external ([d5e8e33](https://git.habd.as/comfusion/after-dark/commits/d5e8e33)) + + +### Features + +* **layout,install:** add automatic syntax highlighting ([3eed5dd](https://git.habd.as/comfusion/after-dark/commits/3eed5dd)) + + + + +# [5.4.0](https://git.habd.as/comfusion/after-dark/compare/v5.3.1...v5.4.0) (2018-08-04) + + +### Features + +* **modules:** add hall of mirrors ([882c32d](https://git.habd.as/comfusion/after-dark/commits/882c32d)), closes [#24](https://git.habd.as/comfusion/after-dark/issues/24) + + + + +## [5.3.1](https://git.habd.as/comfusion/after-dark/compare/v5.3.0...v5.3.1) (2018-08-01) + + +### Bug Fixes + +* **layouts:** show sarcastic message when no pages exist ([e5ce3b9](https://git.habd.as/comfusion/after-dark/commits/e5ce3b9)) + + + + +# [5.3.0](https://git.habd.as/comfusion/after-dark/compare/v5.2.6...v5.3.0) (2018-08-01) + + +### Bug Fixes + +* **install:** kill hugo server always ([abadfbf](https://git.habd.as/comfusion/after-dark/commits/abadfbf)) +* **install:** move kill command to eof ([a87a381](https://git.habd.as/comfusion/after-dark/commits/a87a381)) + + +### Features + +* **bin:** add script to preview site online over https ([51baf0c](https://git.habd.as/comfusion/after-dark/commits/51baf0c)), closes [#21](https://git.habd.as/comfusion/after-dark/issues/21) + + + + +## [5.2.6](https://git.habd.as/comfusion/after-dark/compare/v5.2.5...v5.2.6) (2018-07-31) + + +### Bug Fixes + +* **install:** support both gnu and bsd grep ([35defb7](https://git.habd.as/comfusion/after-dark/commits/35defb7)) + + + + +## [5.2.5](https://git.habd.as/comfusion/after-dark/compare/v5.2.3...v5.2.5) (2018-07-31) + + +### Bug Fixes + +* **install:** install packages from npm ([65c4e99](https://git.habd.as/comfusion/after-dark/commits/65c4e99)) +* **install:** standardize install script ([aca07cc](https://git.habd.as/comfusion/after-dark/commits/aca07cc)), closes [#19](https://git.habd.as/comfusion/after-dark/issues/19) +* **install:** update example base url ([da73a2f](https://git.habd.as/comfusion/after-dark/commits/da73a2f)) +* **install:** use latest version from npm dist tags ([7afe7b9](https://git.habd.as/comfusion/after-dark/commits/7afe7b9)) + + + + +## [5.2.4](https://git.habd.as/comfusion/after-dark/compare/v5.2.3...v5.2.4) (2018-07-31) + + +### Bug Fixes + +* **install:** install packages from npm ([65c4e99](https://git.habd.as/comfusion/after-dark/commits/65c4e99)) +* **install:** standardize install script ([aca07cc](https://git.habd.as/comfusion/after-dark/commits/aca07cc)), closes [#19](https://git.habd.as/comfusion/after-dark/issues/19) + + + + +## [5.2.3](https://git.habd.as/comfusion/after-dark/compare/v5.2.2...v5.2.3) (2018-07-29) + +### Bug Fixes + +* **theme:** just kidding. remove white theme variant ([d73693c](https://git.habd.as/comfusion/after-dark/commits/d73693c)) + + +## [5.2.2](https://git.habd.as/comfusion/after-dark/compare/v5.2.1...v5.2.2) (2018-07-29) + + +### Bug Fixes + +* **theme:** enable white theme variant ([3f8f000](https://git.habd.as/comfusion/after-dark/commits/3f8f000)) + + + + +## [5.2.1](https://git.habd.as/comfusion/after-dark/compare/v5.2.0...v5.2.1) (2018-07-26) + + +### Bug Fixes + +* **install:** remove git cruft & supply actual module name ([a0097a0](https://git.habd.as/comfusion/after-dark/commits/a0097a0)) + + + + +# [5.2.0](https://git.habd.as/comfusion/after-dark/compare/v5.1.0...v5.2.0) (2018-07-26) + + +### Features + +* **install:** streamline installation ([abf92fe](https://git.habd.as/comfusion/after-dark/commits/abf92fe)), closes [#2](https://git.habd.as/comfusion/after-dark/issues/2) + + + + +# [5.1.0](https://git.habd.as/comfusion/after-dark/compare/v5.0.0...v5.1.0) (2018-07-24) + + +### Features + +* **modules:** add fractal forest module for bpg image format support ([8aa35b2](https://git.habd.as/comfusion/after-dark/commits/8aa35b2)), closes [#8](https://git.habd.as/comfusion/after-dark/issues/8) + + + + +# [5.0.0](https://git.habd.as/comfusion/after-dark/compare/v4.1.0...v5.0.0) (2018-07-21) + + +### Features + +* **modules:** add analytics module ([9334f15](https://git.habd.as/comfusion/after-dark/commits/9334f15)), closes [#1](https://git.habd.as/comfusion/after-dark/issues/1) + + +### BREAKING CHANGES + +* **modules:** google analytics no longer supported + + + + +# [4.1.0](https://git.habd.as/comfusion/after-dark/compare/v4.0.2...v4.1.0) (2018-07-19) + + +### Features + +* select theme variant directly from site config ([aa82f5d](https://git.habd.as/comfusion/after-dark/commit/aa82f5d)), closes [#6](https://git.habd.as/comfusion/after-dark/issues/6) + + +### BREAKING CHANGES + +* hugo 0.43 and above required. css override file locations have changed + + + + +## 4.0.2 (2018-07-18) + + +### Bug Fixes + +* **install:** update default open graph image ([aaaf64e](https://git.habd.as/comfusion/after-dark/commit/aaaf64e)) +* **layouts:** output urls relative to baseurl ([2d278dd](https://git.habd.as/comfusion/after-dark/commit/2d278dd)), closes [#4](https://git.habd.as/comfusion/after-dark/issues/4) +* **layouts:** restore smooth scrolling to toc links ([89a9c8d](https://git.habd.as/comfusion/after-dark/commit/89a9c8d)) + + + + +## [4.0.1](https://git.habd.as/comfusion/after-dark/compare/v4.0.0...v4.0.1) (2018-07-18) + + +### Bug Fixes + +* **hugo:** require 0.44 at minimum ([78a09c8](https://git.habd.as/comfusion/after-dark/commits/78a09c8)) + + + + +# [4.0.0](https://git.habd.as/comfusion/after-dark/compare/v3.10.1...v4.0.0) (2018-07-09) + + + + +## [3.10.1](https://git.habd.as/comfusion/after-dark/compare/v3.10.0...v3.10.1) (2018-07-09) + + + + +# [3.10.0](https://github.com/comfusion/after-dark/compare/v3.9.1...v3.10.0) (2018-06-18) + + +### Bug Fixes + +* **$layouts:** resolve search layout header display ([9eee69c](https://github.com/comfusion/after-dark/commit/9eee69c)), closes [#104](https://github.com/comfusion/after-dark/issues/104) + + +### Features + +* **$layout:** add telegram iv support ([4d520f9](https://github.com/comfusion/after-dark/commit/4d520f9)), closes [#113](https://github.com/comfusion/after-dark/issues/113) + + + + +## [3.9.2](https://github.com/comfusion/after-dark/compare/v3.9.1...v3.9.2) (2018-06-09) + + +### Bug Fixes + +* **$layouts:** resolve search layout header display ([9eee69c](https://github.com/comfusion/after-dark/commit/9eee69c)), closes [#104](https://github.com/comfusion/after-dark/issues/104) + + + + +## [3.9.1](https://github.com/comfusion/after-dark/compare/v3.9.0...v3.9.1) (2018-05-13) + + +### Bug Fixes + +* **$layouts:** hide search app when noscript ([c3bcff0](https://github.com/comfusion/after-dark/commit/c3bcff0)) + + + + +# [3.9.0](https://github.com/comfusion/after-dark/compare/v3.8.4...v3.9.0) (2018-05-03) + + +### Features + +* **$layouts:** allow customization of referrer policy and add privacy-focused default ([5759a30](https://github.com/comfusion/after-dark/commit/5759a30)), closes [#96](https://github.com/comfusion/after-dark/issues/96) + + + + +## [3.8.4](https://github.com/comfusion/after-dark/compare/v3.8.3...v3.8.4) (2018-05-01) + + +### Bug Fixes + +* **$layouts:** prevent js error on search form submit ([0dce741](https://github.com/comfusion/after-dark/commit/0dce741)), closes [#94](https://github.com/comfusion/after-dark/issues/94) + + + + +## [3.8.3](https://github.com/comfusion/after-dark/compare/v3.8.2...v3.8.3) (2018-04-16) + + +### Bug Fixes + +* **$layouts:** improve search input focus and usability ([e94f6df](https://github.com/comfusion/after-dark/commit/e94f6df)), closes [#91](https://github.com/comfusion/after-dark/issues/91) + + + + +## [3.8.2](https://github.com/comfusion/after-dark/compare/v3.8.1...v3.8.2) (2018-04-16) + + +### Bug Fixes + +* **$layouts:** disable ua input styling safari mobile ([f7c81f4](https://github.com/comfusion/after-dark/commit/f7c81f4)) +* **$layouts:** prevent auto-zoom on safari mobile ([81c3f39](https://github.com/comfusion/after-dark/commit/81c3f39)) + + + + +## [3.8.1](https://github.com/comfusion/after-dark/compare/v3.8.0...v3.8.1) (2018-04-15) + + +### Bug Fixes + +* **$layouts:** remove duplicate descriptor from post image srcset ([0295370](https://github.com/comfusion/after-dark/commit/0295370)) + + + + +# [3.8.0](https://github.com/comfusion/after-dark/compare/v3.7.0...v3.8.0) (2018-04-15) + + +### Features + +* **$layouts:** add fuzzy search ([93d2a29](https://github.com/comfusion/after-dark/commit/93d2a29)), closes [#83](https://github.com/comfusion/after-dark/issues/83) + + + + +# [3.7.0](https://github.com/comfusion/after-dark/compare/v3.6.0...v3.7.0) (2018-03-25) + + +### Features + +* **$layouts:** add post images ([06457bc](https://github.com/comfusion/after-dark/commit/06457bc)) + + + + +# [3.6.0](https://github.com/comfusion/after-dark/compare/v3.5.1...v3.6.0) (2018-03-22) + + +### Bug Fixes + +* **$style:** add more whitespace on list pages and darken muted text ([646e98b](https://github.com/comfusion/after-dark/commit/646e98b)) + + +### Features + +* **$layouts:** add twitter cards ([6562e80](https://github.com/comfusion/after-dark/commit/6562e80)), closes [#76](https://github.com/comfusion/after-dark/issues/76) + + + + +## [3.5.1](https://github.com/comfusion/after-dark/compare/v3.5.0...v3.5.1) (2018-01-17) + + +### Bug Fixes + +* **$style:** fix a whitespace issue near the readmore link ([dee3530](https://github.com/comfusion/after-dark/commit/dee3530)), closes [#70](https://github.com/comfusion/after-dark/issues/70) + + + + +# [3.5.0](https://github.com/comfusion/after-dark/compare/v3.4.0...v3.5.0) (2017-11-08) + + +### Features + +* **$shortcodes:** add youtube without cookies ([613e545](https://github.com/comfusion/after-dark/commit/613e545)), closes [#62](https://github.com/comfusion/after-dark/issues/62) + + + + +# [3.4.0](https://github.com/comfusion/after-dark/compare/v3.3.0...v3.4.0) (2017-10-27) + + +### Features + +* **$shortcode:** add coub shortcode for gifs with sound ([0267d5b](https://github.com/comfusion/after-dark/commit/0267d5b)), closes [#63](https://github.com/comfusion/after-dark/issues/63) + + + + +# [3.3.0](https://github.com/comfusion/after-dark/compare/v3.2.0...v3.3.0) (2017-10-13) + + +### Features + +* **$layouts:** hide related content reading time on small screen ([480d57a](https://github.com/comfusion/after-dark/commit/480d57a)) +* **$partials:** add pubdate structured data to post byline ([a3bcb0c](https://github.com/comfusion/after-dark/commit/a3bcb0c)) + + + + +# [3.2.0](https://github.com/comfusion/after-dark/compare/v3.1.1...v3.2.0) (2017-10-06) + + +### Bug Fixes + +* **$shortcodes:** fix issue with external link appearance ([afcc8e6](https://github.com/comfusion/after-dark/commit/afcc8e6)) + + +### Features + +* **$layout:** add base element to base layout ([bf25c67](https://github.com/comfusion/after-dark/commit/bf25c67)), closes [#60](https://github.com/comfusion/after-dark/issues/60) +* **$shortcode:** style cite element inside block quotation ([65a4278](https://github.com/comfusion/after-dark/commit/65a4278)) +* **$shortcodes:** add frame targeting to custom figure shortcode ([a66b076](https://github.com/comfusion/after-dark/commit/a66b076)) +* **$shortcodes:** enable target and method control for button/buttongroup ([f705d19](https://github.com/comfusion/after-dark/commit/f705d19)), closes [#56](https://github.com/comfusion/after-dark/issues/56) +* **$shortcodes:** make button shortcode clickable ([1bc643f](https://github.com/comfusion/after-dark/commit/1bc643f)), closes [#40](https://github.com/comfusion/after-dark/issues/40) + + +### Reverts + +* **$layout:** add base element to base layout ([769e2d9](https://github.com/comfusion/after-dark/commit/769e2d9)) + + + + +## [3.1.1](https://github.com/comfusion/after-dark/compare/v3.1.0...v3.1.1) (2017-09-13) + + +### Bug Fixes + +* **$layouts:** fix error calling partial in related content ([8a6253d](https://github.com/comfusion/after-dark/commit/8a6253d)), closes [#55](https://github.com/comfusion/after-dark/issues/55) + + + + +# [3.1.0](https://github.com/comfusion/after-dark/compare/v3.0.0...v3.1.0) (2017-09-13) + + +### Features + +* **$layouts:** use related content feature introduced in hugo@0.27 ([f0474f4](https://github.com/comfusion/after-dark/commit/f0474f4)), closes [#54](https://github.com/comfusion/after-dark/issues/54) + + + + +# [3.0.0](https://github.com/comfusion/after-dark/compare/v2.1.1...v3.0.0) (2017-09-13) + + +### Features + +* **$archetypes:** turn archetypes into go templates ([5ed2d9f](https://github.com/comfusion/after-dark/commit/5ed2d9f)) + +### BREAKING CHANGES + +* **$archetypes:** Minimum Hugo version set 0.24, 0.16 - 0.23 must modify archetypes + +to upgrade add `date` and `title` to custom archetypes. if using a version of hugo prior to 0.24 the custom templates should remove `title` and `date` and not use go templating logic in the archetype files + + + + +## [2.1.1](https://github.com/comfusion/after-dark/compare/v2.1.0...v2.1.1) (2017-09-11) + + +### Bug Fixes + +* **$layouts:** move stylesheets back to partials, reorganize files ([b93b4a7](https://github.com/comfusion/after-dark/commit/b93b4a7)), closes [#50](https://github.com/comfusion/after-dark/issues/50) + + + + +# [2.1.0](https://github.com/comfusion/after-dark/compare/v2.0.0...v2.1.0) (2017-09-09) + + +### Bug Fixes + +* **$images:** improve bpg image support ([7681dde](https://github.com/comfusion/after-dark/commit/7681dde)), closes [#48](https://github.com/comfusion/after-dark/issues/48) + + +### Features + +* **$layout:** Add support for external stylesheets ([9abe627](https://github.com/comfusion/after-dark/commit/9abe627)), closes [#49](https://github.com/comfusion/after-dark/issues/49) + + + + +# [2.0.0](https://github.com/comfusion/after-dark/compare/v1.8.4...v2.0.0) (2017-09-08) + + +### Features + +* **$theme:** add support for bpg image format ([49204d0](https://github.com/comfusion/after-dark/commit/49204d0)) + +### BREAKING CHANGES + +* **$build:** inline css using readFile template function ([3787d10](https://github.com/comfusion/after-dark/commit/3787d10)) + +to upgrade skip this release and move directly to 2.1.1 or a later release + + +## [1.8.4](https://github.com/comfusion/after-dark/compare/v1.8.3...v1.8.4) (2017-06-27) + + +### Bug Fixes + +* **$layouts:** add support for protocol-relative base urls ([755f446](https://github.com/comfusion/after-dark/commit/755f446)), closes [#37](https://github.com/comfusion/after-dark/issues/37) + + + + +## [1.8.3](https://github.com/comfusion/after-dark/compare/v1.8.2...v1.8.3) (2017-06-22) + + +### Bug Fixes + +* **$layouts:** remove iframe borders by default ([3b4f7c1](https://github.com/comfusion/after-dark/commit/3b4f7c1)) + + + + +## [1.8.2](https://github.com/comfusion/after-dark/compare/v1.8.1...v1.8.2) (2017-06-09) + + +### Reverts + +* **layouts:** update powered-by to link to new theme site ([2237ead](https://github.com/comfusion/after-dark/commit/2237ead)) + + + + +## [1.8.1](https://github.com/comfusion/after-dark/compare/v1.8.0...v1.8.1) (2017-06-07) + + +### Bug Fixes + +* **$layouts:** update powered-by to link to new theme site ([c031934](https://github.com/comfusion/after-dark/commit/c031934)) + + + + +# [1.8.0](https://github.com/comfusion/after-dark/compare/v1.7.6...v1.8.0) (2017-06-06) + + +### Features + +* **LICENSE:** you just do what the fuck you want to ([c2eb957](https://github.com/comfusion/after-dark/commit/c2eb957)) + + + + +## [1.7.6](https://github.com/comfusion/after-dark/compare/v1.7.2...v1.7.6) (2017-06-06) + +#### Licensing + +Upgraded to The Unlicense, skipping for patch releases. + + +## [1.7.2](https://github.com/comfusion/after-dark/compare/v1.7.1...v1.7.2) (2017-05-14) + + +### Bug Fixes + +* **install:** move it back to bin ([13441f5](https://github.com/comfusion/after-dark/commit/13441f5)) + + + + +## [1.7.1](https://github.com/comfusion/after-dark/compare/v1.7.0...v1.7.1) (2017-05-13) + + +### Bug Fixes + +* **install:** move to scripts folder ([204e516](https://github.com/comfusion/after-dark/commit/204e516)) + + + + +# [1.7.0](https://github.com/comfusion/after-dark/compare/v1.6.1...v1.7.0) (2017-05-08) + + +### Bug Fixes + +* **install:** improve install experience ([4a30955](https://github.com/comfusion/after-dark/commit/4a30955)) + + +### Features + +* **shortcodes:** add hack progress bar component ([dda60f2](https://github.com/comfusion/after-dark/commit/dda60f2)) +* **shortcodes:** add hackcss alert shortcode ([6ed1c58](https://github.com/comfusion/after-dark/commit/6ed1c58)) +* **shortcodes:** add hackcss alert shortcode ([eebe7a9](https://github.com/comfusion/after-dark/commit/eebe7a9)) +* **shortcodes:** add hackcss button group component ([1f90e2d](https://github.com/comfusion/after-dark/commit/1f90e2d)) +* **shortcodes:** add hackcss button shortcode ([829cb7d](https://github.com/comfusion/after-dark/commit/829cb7d)) +* **shortcodes:** add hackcss card component ([4526c60](https://github.com/comfusion/after-dark/commit/4526c60)) +* **shortcodes:** add hackcss loading component ([6f667e8](https://github.com/comfusion/after-dark/commit/6f667e8)) +* **shortcodes:** add hackcss progress component ([4e99c75](https://github.com/comfusion/after-dark/commit/4e99c75)) + + + + +## [1.6.1](https://github.com/comfusion/after-dark/compare/v1.6.0...v1.6.1) (2017-05-05) + + +### Bug Fixes + +* **typography:** remove text justification and hyphenation ([8fdbe2f](https://github.com/comfusion/after-dark/commit/8fdbe2f)) + + + + +# [1.6.0](https://github.com/comfusion/after-dark/compare/v1.5.2...v1.6.0) (2017-05-03) + + +### Bug Fixes + +* **install:** add flags for theme setup script ([01ad1ee](https://github.com/comfusion/after-dark/commit/01ad1ee)) +* **layouts:** use relative urls in post byline taxonomy links ([419752d](https://github.com/comfusion/after-dark/commit/419752d)) + + +### Features + +* **install:** simplify installation ([765dcb8](https://github.com/comfusion/after-dark/commit/765dcb8)) + + + + +## [1.5.2](https://github.com/comfusion/after-dark/compare/v1.5.1...v1.5.2) (2017-04-30) + + +### Bug Fixes + +* **typography:** only justify and hyphenate article bodies ([ed83bee](https://github.com/comfusion/after-dark/commit/ed83bee)) + + + + +## [1.5.1](https://github.com/comfusion/after-dark/compare/v1.5.0...v1.5.1) (2017-04-20) + + +### Bug Fixes + +* **typography:** stop justifying and hyphenating text on small viewports ([77c6033](https://github.com/comfusion/after-dark/commit/77c6033)) + + + + +# [1.5.0](https://github.com/comfusion/after-dark/compare/v1.4.0...v1.5.0) (2017-04-16) + + +### Bug Fixes + +* **links:** style external links in all browsers ([ccef559](https://github.com/comfusion/after-dark/commit/ccef559)), closes [#22](https://github.com/comfusion/after-dark/issues/22) +* **partials:** fix markup validation error ([c82fc66](https://github.com/comfusion/after-dark/commit/c82fc66)) + + +### Features + +* **layouts:** add support for hugo 0.20.2 ([eba70c9](https://github.com/comfusion/after-dark/commit/eba70c9)), closes [#28](https://github.com/comfusion/after-dark/issues/28) +* **typography:** justify text output and hyphenate ([4775618](https://github.com/comfusion/after-dark/commit/4775618)) + + +### Performance Improvements + +* **favicon:** add svg favicon ([b3b0008](https://github.com/comfusion/after-dark/commit/b3b0008)) +* **install:** remove design resources ([6eb145d](https://github.com/comfusion/after-dark/commit/6eb145d)) + + +### Reverts + +* **docs(README:** remove erroneous markdown file): ([925ed3e](https://github.com/comfusion/after-dark/commit/925ed3e)) + + + + +# [1.4.0](https://github.com/comfusion/after-dark/compare/v1.3.2...v1.4.0) (2017-04-10) + + +### Features + +* **layouts:** add meta keywords to base template ([4b1f0f1](https://github.com/comfusion/after-dark/commit/4b1f0f1)), closes [#20](https://github.com/comfusion/after-dark/issues/20) + + + + +## [1.3.2](https://github.com/comfusion/after-dark/compare/v1.3.1...v1.3.2) (2017-04-09) + + +### Bug Fixes + +* **layouts:** output meta description when not explicitly set ([9f11bd6](https://github.com/comfusion/after-dark/commit/9f11bd6)), closes [#21](https://github.com/comfusion/after-dark/issues/21) + + + + +## [1.3.1](https://github.com/comfusion/after-dark/compare/v1.3.0...v1.3.1) (2017-04-08) + + +### Bug Fixes + +* **bundle:** add images to npm ignore file ([1694334](https://github.com/comfusion/after-dark/commit/1694334)) + + + + +# [1.3.0](https://github.com/comfusion/after-dark/compare/v1.2.0...v1.3.0) (2017-04-08) + + +### Bug Fixes + +* **bundle:** remove images folder from npm release ([b277a20](https://github.com/comfusion/after-dark/commit/b277a20)) + + +### Features + +* **powered-by:** add page generation date ([c0c421a](https://github.com/comfusion/after-dark/commit/c0c421a)) + + +### Reverts + +* **powered-by:** remove page generation date ([478ba0b](https://github.com/comfusion/after-dark/commit/478ba0b)) + + + + +# [1.2.0](https://github.com/comfusion/after-dark/compare/v1.1.0...v1.2.0) (2017-03-30) + + +### Features + +* **highlighting:** add syntax highlighting ([455062f](https://github.com/comfusion/after-dark/commit/455062f)) +* **shortcodes:** add figure shortcode ([8a0317f](https://github.com/comfusion/after-dark/commit/8a0317f)) + + + + +# [1.1.0](https://github.com/comfusion/after-dark/compare/v1.0.0...v1.1.0) (2017-03-30) + + +### Features + +* **shortcodes:** add blockquote shortcode ([ea293e3](https://github.com/comfusion/after-dark/commit/ea293e3)) + + + + +# 1.0.0 (2017-03-30) + + +### Bug Fixes + +* 404 page theme color url ref ([79d2377](https://github.com/comfusion/after-dark/commit/79d2377)) +* add add theme color to 404 page ([4f5ec87](https://github.com/comfusion/after-dark/commit/4f5ec87)) diff --git a/themes/after-dark/COPYING b/themes/after-dark/COPYING new file mode 100644 index 0000000..5c93f45 --- /dev/null +++ b/themes/after-dark/COPYING @@ -0,0 +1,13 @@ + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + + Copyright (C) 2004 Sam Hocevar + + Everyone is permitted to copy and distribute verbatim or modified + copies of this license document, and changing it is allowed as long + as the name is changed. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. You just DO WHAT THE FUCK YOU WANT TO. diff --git a/themes/after-dark/README.md b/themes/after-dark/README.md new file mode 100644 index 0000000..86edee1 --- /dev/null +++ b/themes/after-dark/README.md @@ -0,0 +1,113 @@ +# After Dark + +> After Dark is free and open-source software you can use to create a website, blog or app. Utilize the world's fastest framework for building websites and design your entire site right inside the terminal. + +[![Latest NPM version](https://img.shields.io/npm/v/after-dark.svg?style=flat-square)](https://www.npmjs.com/package/after-dark) +[![Monthly downloads](https://img.shields.io/npm/dm/after-dark.svg?style=flat-square)](https://www.npmjs.com/package/after-dark) +[![Minimum Hugo version](https://img.shields.io/badge/hugo->%3D%200.44-FF4088.svg?style=flat-square)](https://gohugo.io) +[![WTFPL licensed](https://img.shields.io/npm/l/after-dark.svg?style=flat-square&longCache=true)](https://git.habd.as/comfusion/after-dark/src/branch/master/COPYING) +[![Telegram chat](https://img.shields.io/badge/chat-telegram-32AFED.svg?style=flat-square&longCache=true)](https://t.me/comfusion) +[![Keybase profile](https://img.shields.io/badge/pm-keybase-4c8eff.svg?style=flat-square&longCache=true)](https://keybase.io/jhabdas) + +## Features + +- [Streamlined Workflow](https://after-dark.habd.as/#feature-workflow) – cross-platform, 1 dependency, single-codebase +- [Unparalleled Speed](https://after-dark.habd.as/#feature-speed) – ~0.615s builds, decisecond page loads +- [Advanced Graphics](https://after-dark.habd.as/#feature-graphics) – responsive post images with lqip +- [Rewards System](https://after-dark.habd.as/#feature-rewards) – monetize attention and earn borderless income +- [Fuzzy Search](https://after-dark.habd.as/#feature-search) – automatic indexing and no third-parties +- [Easily Customized](https://after-dark.habd.as/#feature-customize) – change skins, strip styles, create layouts +- [Securely Designed](https://after-dark.habd.as/#feature-security) – csp, referrer policy, release hashes +- [Privacy Focused](https://after-dark.habd.as/#feature-privacy) – no cookies and no external requests, ephemeral ssh hosting + +## Demo + +Click a screenshot to view a live demo of the functionality. + + + + + + + + + + + + +
    + + + + + + + + + + + +
    Help Docs
    SVG Favicon
    404 Page
    + + + + + + + + + + + + +
    + + + + + + + + + + + +
    Add-on Modules
    Form Controls
    IndieWeb Extras
    + +## Getting Started + +Please [Install Hugo](https://gohugo.io/getting-started/installing) `0.44` or greater before getting started. + +### Installation + +For scripted installation use [Quick Install](https://after-dark.habd.as/feature/quick-install/). Otherwise download a copy and: + +```sh +hugo serve --theme after-dark +``` + +### Upgrading + +Run the [Upgrade Script](https://after-dark.habd.as/feature/upgrade-script/) to check for updates and upgrade automatically: + +```sh +./themes/after-dark/bin/upgrade +``` + +## Verifying + +If installed or upgraded via script you may use the [Release Validator](https://after-dark.habd.as/validate/) to verify you're running a PGP-signed and SHA-verified release. Integrity is checked at the source level and may be performed offline. See [Release Hashes](https://after-dark.habd.as/feature/release-hashes/) for more info. + +## Usage + +Use the included [Online Help](https://after-dark.habd.as/feature/online-help/) to learn how to set-up and use After Dark. Help docs may be served locally and do not require an Internet connection to function. + +## Credits + +Special thanks to エゴイスト for [hackcss](https://git.habd.as/comfusion/hack), Dan Klammer for the [bytesize icons](https://git.habd.as/comfusion/bytesize-icons) and Vincent Prouillet for the [Zola port](https://www.getzola.org/themes/after-dark/). + +## License + +This work is free. You can redistribute it and/or modify it under the +terms of the Do What The Fuck You Want To Public License, Version 2, +as published by Sam Hocevar. The full text of the license is included in the file COPYING in the source. diff --git a/themes/after-dark/archetypes/default.md b/themes/after-dark/archetypes/default.md new file mode 100644 index 0000000..0a5bae4 --- /dev/null +++ b/themes/after-dark/archetypes/default.md @@ -0,0 +1,6 @@ ++++ +title = "{{ replace .TranslationBaseName "-" " " | title }}" +date = {{ .Date }} +description = "This text is displayed in search result listings." +draft = true ++++ diff --git a/themes/after-dark/archetypes/post.md b/themes/after-dark/archetypes/post.md new file mode 100644 index 0000000..938ba31 --- /dev/null +++ b/themes/after-dark/archetypes/post.md @@ -0,0 +1,86 @@ ++++ +title = "{{ replace .TranslationBaseName "-" " " | title }}" +date = {{ .Date }} +description = "This text was generated using the After Dark post archetype." +draft = true +toc = false +categories = ["hacking"] +tags = ["after", "dark"] +images = [ + "https://source.unsplash.com/collection/983219/1600x900" +] # overrides site-wide open graph image ++++ + +Before continuing please create a post archetype. Archetypes are located within markdown files in the `archetypes` directory of your site: + +``` +flying-toasters +├── archetypes +│   ├── default.md +│   └── post.md +├── content +``` + +If `post.md` does not exist yet, copy it from the After Dark default: + +```sh +$ cd flying-toasters +$ cp themes/after-dark/archetypes/post.md archetypes/ +``` + +Make some changes to `post.md` then use `hugo new` to draft a new post: + +```sh +$ vi archetypes/post.md # or vim, emacs, nano ... +$ hugo new post/totally-twisted.md +``` + +If `hugo server` is running with the `--navigateToChanged` flag your new post will appear automatically in JavaScript-enabled browsers. If you see an empty page you probably need to restart `hugo server` with the `--buildDrafts` flag. + +Use archetypes to maintain consistency when creating content for [Custom Layouts](http://localhost:1414/feature/custom-layouts). Like custom layouts {{< external href="https://gohugo.io/content-management/archetypes/" text="Hugo Archetypes" />}} may contain templating logic. + + + +--- + +{{< hackcss-alert type="info" >}} +Tip: This message appears below a {{< external href="https://gohugo.io/content-management/summaries/#manual-summary-splitting" text="Manual Summary Split" />}}. +{{< /hackcss-alert >}} + +The above tip uses a shortcode called [Alert](http://localhost:1414/shortcode/alert/). In addition to a number of [Shortcodes](http://localhost:1414/shortcode/) After Dark provides a number of other [Features](http://localhost:1414/feature/). + +The [Module System](http://localhost:1414/feature/module-system/), for example, provides a module to display image animations with alpha transparency and something not possible using a GIF: + +![BPG animation example](/bpg/cinemagraph-6.bpg) + +If you do not see the above animation, you may install the [Fractal Forest](http://localhost:1414/module/fractal-forest/) module yourself or reinstall After Dark using the [Quick Install](http://localhost:1414/feature/quick-install/) for instant setup. + +Review the [Online Help](http://localhost:1414/) to learn about other useful features such as the [Section Menus](http://localhost:1414/feature/section-menu) navigational aid, responsive [Post Images](http://localhost:1414/feature/post-images/"), offline [Fuzzy Search](http://localhost:1414/feature/fuzzy-search/) and more. + +If online help isn't running, go ahead and start it using the corresponding command from the following cheat sheet within your site directory: + +```sh +# After Dark scripts +./themes/after-dark/bin/upgrade # check for updates and upgrade +./themes/after-dark/bin/help # start online help docs +./themes/after-dark/bin/install # run the quick installer + +# Hugo commands +hugo # build site with default settings +hugo --minify # build with minified sources (hugo 0.47 and above) +hugo --config config.prod.toml # build with custom config +hugo --templateMetrics # generate template metrics +hugo new about.md # generate page content +hugo new post/coming-soon.md # generate new post content +hugo serve # serve locally with default settings +hugo serve --buildDrafts --navigateToChanged # serve with drafts for editing +hugo serve --buildExpired # serve locally showing expired content +hugo serve --disableLiveReload # serve locally w/live reload disabled +hugo list drafts # list draft content +hugo list expired # list expired content +hugo list future # list future content +hugo [serve] --debug # build or serve hugo with debug info +hugo [command] --help +``` + +Thank you for choosing After Dark. diff --git a/themes/after-dark/archetypes/search.md b/themes/after-dark/archetypes/search.md new file mode 100644 index 0000000..17736d6 --- /dev/null +++ b/themes/after-dark/archetypes/search.md @@ -0,0 +1,15 @@ ++++ +title = "Search" # title of the page +layout = "search" # sets the layout to use +noindex = true # tell robots not to index +[form] + helpblock = "Press s to focus input anytime." +[form.input] + placeholder = "Enter search query…" + disabled = false +[security.csp.directives] + scriptSrc = [ + "'sha512-Bxby9zhln4Zc2thGA1E9CdT4qcCY52SxO/SBxAH6qQK6LK6/1gGq1xJ3Uz0SXTsPSL6quze7bYQUHr94xJS7jQ=='", + "'unsafe-eval'" + ] ++++ diff --git a/themes/after-dark/assets/css/custom.css b/themes/after-dark/assets/css/custom.css new file mode 100644 index 0000000..e4f55c0 --- /dev/null +++ b/themes/after-dark/assets/css/custom.css @@ -0,0 +1,20 @@ +a[rel*="external"]::after { + content: " " url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20class='i-external'%20viewBox='0%200%2032%2032'%20width='14'%20height='14'%20fill='none'%20stroke='%23ff9800'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='9.38%'%3E%3Cpath%20d='M14%209%20L3%209%203%2029%2023%2029%2023%2018%20M18%204%20L28%204%2028%2014%20M28%204%20L14%2018'/%3E%3C/svg%3E"); +} +nav a.active { + background-color: inherit; + color: #fff; +} +a[itemprop="url"] { + color: #ff9800; +} +a[itemprop="url"]:hover { + color: #fff; +} +.muted, .help-block { + opacity: 0.70; +} +.hack .muted, +.hack .help-block { + color: #e0e0e0; +} diff --git a/themes/after-dark/assets/css/theme.css b/themes/after-dark/assets/css/theme.css new file mode 100644 index 0000000..cbf3a9f --- /dev/null +++ b/themes/after-dark/assets/css/theme.css @@ -0,0 +1,152 @@ +:root { + scroll-behavior: smooth; + --screen-size-small: 30em; /* breakpoint reference only */ +} +@keyframes intro { + 0% { opacity: 0 } 100% { opacity: 1 } +} +.blur-up { + -webkit-filter: blur(5px); + filter: blur(5px); + transition: filter 400ms, -webkit-filter 400ms; +} +.blur-up.lazyloaded { + -webkit-filter: blur(0); + filter: blur(0); +} +.hack .readmore { + margin-bottom: 2.2em; +} +.responsive-iframe { + position: relative; + padding-bottom: 56.25%; /* 16:9 */ + padding-top: 25px; + height: 0; +} +.responsive-iframe iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +iframe { + border: 0; +} +main, footer { + animation: intro 0.3s both; + animation-delay: 0.15s; +} +header:first-of-type + details { + margin-top: 1rem; +} +footer time[datetime$="M"]:before { + content: "\2013\0020"; +} +body > footer p.muted { + margin-bottom: 0; +} +@media only screen and (max-width: 768px) { + footer time[datetime$="M"] { + display: none; + } +} +blockquote cite { + display: block; +} +blockquote cite::before { + content: "\2014\00A0"; +} +:target { + filter: brightness(1.2); +} +:disabled { + cursor: not-allowed; +} +#search-app [v-cloak] { + display: none; +} +/* hack.css overrides and enhancements */ +.hack li ul { + margin: 0; +} +.hack ol li { + padding-left: 27px; +} +.main { + padding: 20px 10px; +} +input.form-control { + border-radius: 0; + background-color: transparent; + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; +} +input.form-control, +textarea.form-control, +select.form-control, +.help-block { + font-size: initial; +} +@media only screen and (max-width: 768px) { + .help-block { + font-size: unset; + } +} +html { + font-size: 13px; +} +.hack .form input, +.hack .form textarea, +.hack .form button, +.hack .form label { + font-size: 1rem; +} +.hack .alert .highlight:first-of-type .chroma, +.hack .card .highlight:first-of-type .chroma { + margin-top: unset; +} +.hack .alert .highlight:last-of-type .chroma, +.hack .card .highlight:last-of-type .chroma { + margin-bottom: unset; +} +.hack blockquote, +.hack blockquote:after { + line-height: 1.5; +} +.hack figure { + margin: unset; +} +.hack figure a { + border-bottom: none; +} +.hack figure a:hover { + background-color: inherit; +} +article [itemprop="description"] { + margin-bottom: 20px; + margin-top: 20px; +} +article header img { + width: 100%; + border-radius: 3px; +} +table td, table th { + line-height: inherit; +} +table a { + border-bottom: unset; +} +img { + max-width: 100%; +} +@media only screen and (min-width: 768px) { + html { + font-size: 16px; + margin-left: calc(100vw - 100%); + } + .container { + max-width: 50rem; + } +} diff --git a/themes/after-dark/assets/css/vendor/hack/dark-grey.css b/themes/after-dark/assets/css/vendor/hack/dark-grey.css new file mode 100644 index 0000000..fa926b8 --- /dev/null +++ b/themes/after-dark/assets/css/vendor/hack/dark-grey.css @@ -0,0 +1 @@ +.dark-grey{background-color:#181818;color:#ccc}.dark-grey pre{background-color:#181818;padding:0;border:none}.dark-grey pre code{color:#00bcd4}.dark-grey h1 a,.dark-grey h2 a,.dark-grey h3 a,.dark-grey h4 a,.dark-grey h5 a{color:#ccc}.dark-grey code,.dark-grey strong{color:#fff}.dark-grey code{font-weight:100}.dark-grey table{color:#ccc}.dark-grey table td,.dark-grey table th{border-color:#444}.dark-grey table tbody td:first-child{color:#fff}.dark-grey .form-group label{color:#ccc;border-color:rgba(95,95,95,.78)}.dark-grey .form-group.form-textarea label:after{background-color:#181818}.dark-grey .form-control{color:#ccc;border-color:rgba(95,95,95,.78)}.dark-grey .form-control:focus{border-color:#ccc;color:#ccc}.dark-grey textarea.form-control{color:#ccc}.dark-grey .card{border-color:rgba(95,95,95,.78)}.dark-grey .card .card-header{background-color:transparent;color:#ccc;border-bottom:1px solid rgba(95,95,95,.78)}.dark-grey .btn.btn-ghost.btn-default{border-color:#ababab;color:#ababab}.dark-grey .btn.btn-ghost.btn-default:focus,.dark-grey .btn.btn-ghost.btn-default:hover{border-color:#9c9c9c;color:#9c9c9c;z-index:1}.dark-grey .btn.btn-ghost.btn-default:focus,.dark-grey .btn.btn-ghost.btn-default:hover{border-color:#e0e0e0;color:#e0e0e0}.dark-grey .btn.btn-ghost.btn-primary:focus,.dark-grey .btn.btn-ghost.btn-primary:hover{border-color:#64b5f6;color:#64b5f6}.dark-grey .btn.btn-ghost.btn-success:focus,.dark-grey .btn.btn-ghost.btn-success:hover{border-color:#81c784;color:#81c784}.dark-grey .btn.btn-ghost.btn-info:focus,.dark-grey .btn.btn-ghost.btn-info:hover{border-color:#4dd0e1;color:#4dd0e1}.dark-grey .btn.btn-ghost.btn-error:focus,.dark-grey .btn.btn-ghost.btn-error:hover{border-color:#e57373;color:#e57373}.dark-grey .btn.btn-ghost.btn-warning:focus,.dark-grey .btn.btn-ghost.btn-warning:hover{border-color:#ffb74d;color:#ffb74d}.dark-grey .avatarholder,.dark-grey .placeholder{background-color:transparent;border-color:#333}.dark-grey .menu .menu-item{color:#ccc;border-color:rgba(95,95,95,.78)}.dark-grey .menu .menu-item.active,.dark-grey .menu .menu-item:hover{color:#fff;border-color:#ccc} \ No newline at end of file diff --git a/themes/after-dark/assets/css/vendor/hack/dark.css b/themes/after-dark/assets/css/vendor/hack/dark.css new file mode 100644 index 0000000..2f1a04c --- /dev/null +++ b/themes/after-dark/assets/css/vendor/hack/dark.css @@ -0,0 +1 @@ +.dark{color:#ccc}.dark,.dark pre{background-color:#000}.dark pre{padding:0;border:none}.dark pre code{color:#00bcd4}.dark h1 a,.dark h2 a,.dark h3 a,.dark h4 a,.dark h5 a{color:#ccc}.dark code,.dark strong{color:#fff}.dark code{font-weight:100}.dark table{color:#ccc}.dark table td,.dark table th{border-color:#444}.dark table tbody td:first-child{color:#fff}.dark .form-group label{color:#ccc;border-color:rgba(95,95,95,.78)}.dark .form-group.form-textarea label:after{background-color:#000}.dark .form-control{color:#ccc;border-color:rgba(95,95,95,.78)}.dark .form-control:focus{border-color:#ccc;color:#ccc}.dark textarea.form-control{color:#ccc}.dark .card{border-color:rgba(95,95,95,.78)}.dark .card .card-header{background-color:transparent;color:#ccc;border-bottom:1px solid rgba(95,95,95,.78)}.dark .btn.btn-ghost.btn-default{border-color:#ababab;color:#ababab}.dark .btn.btn-ghost.btn-default:focus,.dark .btn.btn-ghost.btn-default:hover{border-color:#9c9c9c;color:#9c9c9c;z-index:1}.dark .btn.btn-ghost.btn-default:focus,.dark .btn.btn-ghost.btn-default:hover{border-color:#e0e0e0;color:#e0e0e0}.dark .btn.btn-ghost.btn-primary:focus,.dark .btn.btn-ghost.btn-primary:hover{border-color:#64b5f6;color:#64b5f6}.dark .btn.btn-ghost.btn-success:focus,.dark .btn.btn-ghost.btn-success:hover{border-color:#81c784;color:#81c784}.dark .btn.btn-ghost.btn-info:focus,.dark .btn.btn-ghost.btn-info:hover{border-color:#4dd0e1;color:#4dd0e1}.dark .btn.btn-ghost.btn-error:focus,.dark .btn.btn-ghost.btn-error:hover{border-color:#e57373;color:#e57373}.dark .btn.btn-ghost.btn-warning:focus,.dark .btn.btn-ghost.btn-warning:hover{border-color:#ffb74d;color:#ffb74d}.dark .avatarholder,.dark .placeholder{background-color:transparent;border-color:#333}.dark .menu .menu-item{color:#ccc;border-color:rgba(95,95,95,.78)}.dark .menu .menu-item.active,.dark .menu .menu-item:hover{color:#fff;border-color:#ccc} \ No newline at end of file diff --git a/themes/after-dark/assets/css/vendor/hack/hack.css b/themes/after-dark/assets/css/vendor/hack/hack.css new file mode 100644 index 0000000..f23ce01 --- /dev/null +++ b/themes/after-dark/assets/css/vendor/hack/hack.css @@ -0,0 +1 @@ +html{font-size:12px}*{box-sizing:border-box;text-rendering:geometricPrecision}body{font-size:1rem;line-height:1.5rem;margin:0;font-family:Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif;word-wrap:break-word}h1,h2,h3,h4,h5,h6{line-height:1.3em}fieldset{border:none;padding:0;margin:0}pre{padding:2rem;margin:1.75rem 0;background-color:#fff;border:1px solid #ccc;overflow:auto}code[class*=language-],pre[class*=language-],pre code{font-weight:100;text-shadow:none;margin:1.75rem 0}a{cursor:pointer;color:#ff2e88;text-decoration:none;border-bottom:1px solid #ff2e88}a:hover{background-color:#ff2e88;color:#fff}.grid{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.grid.\-top{-ms-flex-align:start;align-items:flex-start}.grid.\-middle{-ms-flex-align:center;align-items:center}.grid.\-bottom{-ms-flex-align:end;align-items:flex-end}.grid.\-stretch{-ms-flex-align:stretch;align-items:stretch}.grid.\-baseline{-ms-flex-align:baseline;align-items:baseline}.grid.\-left{-ms-flex-pack:start;justify-content:flex-start}.grid.\-center{-ms-flex-pack:center;justify-content:center}.grid.\-right{-ms-flex-pack:end;justify-content:flex-end}.grid.\-between{-ms-flex-pack:justify;justify-content:space-between}.grid.\-around{-ms-flex-pack:distribute;justify-content:space-around}.cell{-ms-flex:1;flex:1;box-sizing:border-box}@media screen and (min-width:768px){.cell.\-1of12{-ms-flex:0 0 8.33333%;flex:0 0 8.33333%}.cell.\-2of12{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%}.cell.\-3of12{-ms-flex:0 0 25%;flex:0 0 25%}.cell.\-4of12{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%}.cell.\-5of12{-ms-flex:0 0 41.66667%;flex:0 0 41.66667%}.cell.\-6of12{-ms-flex:0 0 50%;flex:0 0 50%}.cell.\-7of12{-ms-flex:0 0 58.33333%;flex:0 0 58.33333%}.cell.\-8of12{-ms-flex:0 0 66.66667%;flex:0 0 66.66667%}.cell.\-9of12{-ms-flex:0 0 75%;flex:0 0 75%}.cell.\-10of12{-ms-flex:0 0 83.33333%;flex:0 0 83.33333%}.cell.\-11of12{-ms-flex:0 0 91.66667%;flex:0 0 91.66667%}}@media screen and (max-width:768px){.grid{-ms-flex-direction:column;flex-direction:column}.cell{-ms-flex:0 0 auto;flex:0 0 auto}}.hack,.hack blockquote,.hack code,.hack em,.hack h1,.hack h2,.hack h3,.hack h4,.hack h5,.hack h6,.hack strong{font-size:1rem;font-style:normal;font-family:Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif}.hack blockquote,.hack code,.hack em,.hack strong{line-height:20px}.hack blockquote,.hack code,.hack footer,.hack h1,.hack h2,.hack h3,.hack h4,.hack h5,.hack h6,.hack header,.hack li,.hack ol,.hack p,.hack section,.hack ul{float:none;margin:0;padding:0}.hack blockquote,.hack h1,.hack ol,.hack p,.hack ul{margin-top:20px;margin-bottom:20px}.hack h1{position:relative;display:inline-block;display:table-cell;padding:20px 0 30px;margin:0;overflow:hidden}.hack h1:after{content:"====================================================================================================";position:absolute;bottom:10px;left:0}.hack h1+*{margin-top:0}.hack h2,.hack h3,.hack h4,.hack h5,.hack h6{position:relative;margin-bottom:1.75rem}.hack h2:before,.hack h3:before,.hack h4:before,.hack h5:before,.hack h6:before{display:inline}.hack h2:before{content:"## "}.hack h3:before{content:"### "}.hack h4:before{content:"#### "}.hack h5:before{content:"##### "}.hack h6:before{content:"###### "}.hack li{position:relative;display:block;padding-left:20px}.hack li:after{position:absolute;top:0;left:0}.hack ul>li:after{content:"-"}.hack ol{counter-reset:a}.hack ol>li:after{content:counter(a) ".";counter-increment:a}.hack ol li:nth-child(n+10):after{left:-7px}.hack blockquote{position:relative;padding-left:17px;padding-left:2ch;overflow:hidden}.hack blockquote:after{content:">\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>";white-space:pre;position:absolute;top:0;left:0;line-height:20px}.hack em:after,.hack em:before{content:"*";display:inline}.hack pre code:after,.hack pre code:before{content:""}.hack code{font-weight:700}.hack code:after,.hack code:before{content:"`";display:inline}.hack hr{position:relative;height:20px;overflow:hidden;border:0;margin:20px 0}.hack hr:after{content:"----------------------------------------------------------------------------------------------------";position:absolute;top:0;left:0;line-height:20px;width:100%;word-wrap:break-word}@-moz-document url-prefix(){.hack h1{display:block}}.hack-ones ol>li:after{content:"1."}p{margin:0 0 1.75rem}.container{max-width:70rem}.container,.container-fluid{margin:0 auto;padding:0 1rem}.inner{padding:1rem}.inner2x{padding:2rem}.pull-left{float:left}.pull-right{float:right}.progress-bar{height:8px;opacity:.8;background-color:#ccc;margin-top:12px}.progress-bar.progress-bar-show-percent{margin-top:38px}.progress-bar-filled{background-color:gray;height:100%;transition:width .3s ease;position:relative;width:0}.progress-bar-filled:before{content:"";border:6px solid transparent;border-top-color:gray;position:absolute;top:-12px;right:-6px}.progress-bar-filled:after{color:gray;content:attr(data-filled);display:block;font-size:12px;white-space:nowrap;position:absolute;border:6px solid transparent;top:-38px;right:0;-ms-transform:translateX(50%);transform:translateX(50%)}table{width:100%;border-collapse:collapse;margin:1.75rem 0;color:#778087}table td,table th{vertical-align:top;border:1px solid #ccc;line-height:15px;padding:10px}table thead th{font-size:10px}table tbody td:first-child{font-weight:700;color:#333}.form{width:30rem}.form-group{margin-bottom:1.75rem;overflow:auto}.form-group label{border-bottom:2px solid #ccc;color:#333;width:10rem;display:inline-block;height:38px;line-height:38px;padding:0;float:left;position:relative}.form-group.form-success label{color:#4caf50!important;border-color:#4caf50!important}.form-group.form-warning label{color:#ff9800!important;border-color:#ff9800!important}.form-group.form-error label{color:#f44336!important;border-color:#f44336!important}.form-control{outline:none;border:none;border-bottom:2px solid #ccc;padding:.5rem 0;width:20rem;height:38px;background-color:transparent}.form-control:focus{border-color:#555}.form-group.form-textarea label:after{position:absolute;content:"";width:2px;background-color:#fff;right:-2px;top:0;bottom:0}textarea.form-control{height:auto;resize:none;padding:1rem 0;border-bottom:2px solid #ccc;border-left:2px solid #ccc;padding:.5rem}select.form-control{border-radius:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none}.help-block{color:#999;margin-top:.5rem}.form-actions{margin-bottom:1.75rem}.btn{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;cursor:pointer;outline:none;padding:.65rem 2rem;font-size:1rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;z-index:1}.btn:active{box-shadow:inset 0 1px 3px rgba(0,0,0,.12)}.btn.btn-ghost{border-color:#757575;color:#757575;background-color:transparent}.btn.btn-ghost:focus,.btn.btn-ghost:hover{border-color:#424242;color:#424242;z-index:2}.btn.btn-ghost:hover{background-color:transparent}.btn-block{width:100%;display:-ms-flexbox;display:flex}.btn-default{color:#fff;background-color:#e0e0e0;border:1px solid #e0e0e0;color:#333}.btn-default:focus:not(.btn-ghost),.btn-default:hover{background-color:#dcdcdc;border-color:#dcdcdc}.btn-success{color:#fff;background-color:#4caf50;border:1px solid #4caf50}.btn-success:focus:not(.btn-ghost),.btn-success:hover{background-color:#43a047;border-color:#43a047}.btn-success.btn-ghost{border-color:#4caf50;color:#4caf50}.btn-success.btn-ghost:focus,.btn-success.btn-ghost:hover{border-color:#388e3c;color:#388e3c;z-index:2}.btn-error{color:#fff;background-color:#f44336;border:1px solid #f44336}.btn-error:focus:not(.btn-ghost),.btn-error:hover{background-color:#e53935;border-color:#e53935}.btn-error.btn-ghost{border-color:#f44336;color:#f44336}.btn-error.btn-ghost:focus,.btn-error.btn-ghost:hover{border-color:#d32f2f;color:#d32f2f;z-index:2}.btn-warning{color:#fff;background-color:#ff9800;border:1px solid #ff9800}.btn-warning:focus:not(.btn-ghost),.btn-warning:hover{background-color:#fb8c00;border-color:#fb8c00}.btn-warning.btn-ghost{border-color:#ff9800;color:#ff9800}.btn-warning.btn-ghost:focus,.btn-warning.btn-ghost:hover{border-color:#f57c00;color:#f57c00;z-index:2}.btn-info{color:#fff;background-color:#00bcd4;border:1px solid #00bcd4}.btn-info:focus:not(.btn-ghost),.btn-info:hover{background-color:#00acc1;border-color:#00acc1}.btn-info.btn-ghost{border-color:#00bcd4;color:#00bcd4}.btn-info.btn-ghost:focus,.btn-info.btn-ghost:hover{border-color:#0097a7;color:#0097a7;z-index:2}.btn-primary{color:#fff;background-color:#2196f3;border:1px solid #2196f3}.btn-primary:focus:not(.btn-ghost),.btn-primary:hover{background-color:#1e88e5;border-color:#1e88e5}.btn-primary.btn-ghost{border-color:#2196f3;color:#2196f3}.btn-primary.btn-ghost:focus,.btn-primary.btn-ghost:hover{border-color:#1976d2;color:#1976d2;z-index:2}.btn-group{overflow:auto}.btn-group .btn{float:left}.btn-group .btn-ghost:not(:first-child){margin-left:-1px}.card{border:1px solid #ccc}.card .card-header{color:#333;text-align:center;background-color:#ddd;padding:.5rem 0}.alert{color:#ccc;padding:1rem;border:1px solid #ccc;margin-bottom:1.75rem}.alert-success{color:#4caf50;border-color:#4caf50}.alert-error{color:#f44336;border-color:#f44336}.alert-info{color:#00bcd4;border-color:#00bcd4}.alert-warning{color:#ff9800;border-color:#ff9800}.media:not(:last-child){margin-bottom:1.25rem}.media-left{padding-right:1rem}.media-left,.media-right{display:table-cell;vertical-align:top}.media-right{padding-left:1rem}.media-body{display:table-cell;vertical-align:top}.media-heading{font-size:1.16667rem;font-weight:700}.media-content{margin-top:.3rem}.avatarholder,.placeholder{background-color:#f0f0f0;text-align:center;color:#b9b9b9;font-size:1rem;border:1px solid #f0f0f0}.avatarholder{width:48px;height:48px;line-height:46px;font-size:2rem;background-size:cover;background-position:50%;background-repeat:no-repeat}.avatarholder.rounded{border-radius:33px}.loading{display:inline-block;content:" ";height:20px;width:20px;margin:0 .5rem;animation:a .6s infinite linear;border:2px solid #e91e63;border-right-color:transparent;border-radius:50%}.btn .loading{margin-bottom:0;width:14px;height:14px}.btn div.loading{float:left}.alert .loading{margin-bottom:-5px}@keyframes a{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.menu{width:100%}.menu .menu-item{display:block;color:#616161;border-color:#616161}.menu .menu-item.active,.menu .menu-item:hover{color:#000;border-color:#000;background-color:transparent}@media screen and (max-width:768px){.form-group label{display:block;border-bottom:none;width:100%}.form-group.form-textarea label:after{display:none}.form-control{width:100%}textarea.form-control{border-left:none;padding:.5rem 0}pre::-webkit-scrollbar{height:3px}}@media screen and (max-width:480px){.form{width:100%}} \ No newline at end of file diff --git a/themes/after-dark/assets/css/vendor/hack/solarized-dark.css b/themes/after-dark/assets/css/vendor/hack/solarized-dark.css new file mode 100644 index 0000000..4c29736 --- /dev/null +++ b/themes/after-dark/assets/css/vendor/hack/solarized-dark.css @@ -0,0 +1 @@ +.solarized-dark{background-color:#073642;color:#78909c}.solarized-dark h1,.solarized-dark h2,.solarized-dark h3,.solarized-dark h4,.solarized-dark h5,.solarized-dark h6{color:#1e88e5}.solarized-dark h1 a,.solarized-dark h2 a,.solarized-dark h3 a,.solarized-dark h4 a,.solarized-dark h5 a,.solarized-dark h6 a{color:#1e88e5;border-bottom-color:#1e88e5}.solarized-dark h1 a:hover,.solarized-dark h2 a:hover,.solarized-dark h3 a:hover,.solarized-dark h4 a:hover,.solarized-dark h5 a:hover,.solarized-dark h6 a:hover{background-color:#1e88e5;color:#fff}.solarized-dark pre{background-color:#073642;padding:0;border:none}.solarized-dark pre code{color:#009688}.solarized-dark h1 a,.solarized-dark h2 a,.solarized-dark h3 a,.solarized-dark h4 a,.solarized-dark h5 a{color:#78909c}.solarized-dark code,.solarized-dark strong{color:#90a4ae}.solarized-dark code{font-weight:100}.solarized-dark .progress-bar-filled{background-color:#558b2f}.solarized-dark .progress-bar-filled:after,.solarized-dark .progress-bar-filled:before{color:#90a4ae}.solarized-dark table{color:#78909c}.solarized-dark table td,.solarized-dark table th{border-color:#b0bec5}.solarized-dark table tbody td:first-child{color:#b0bec5}.solarized-dark .form-group label{color:#78909c;border-color:#90a4ae}.solarized-dark .form-group.form-textarea label:after{background-color:#073642}.solarized-dark .form-control{color:#78909c;border-color:#90a4ae}.solarized-dark .form-control:focus{border-color:#cfd8dc;color:#cfd8dc}.solarized-dark textarea.form-control{color:#78909c}.solarized-dark .card{border-color:#90a4ae}.solarized-dark .card .card-header{background-color:transparent;color:#78909c;border-bottom:1px solid #90a4ae}.solarized-dark .btn.btn-ghost.btn-default{border-color:#607d8b;color:#607d8b}.solarized-dark .btn.btn-ghost.btn-default:focus,.solarized-dark .btn.btn-ghost.btn-default:hover{border-color:#90a4ae;color:#90a4ae;z-index:1}.solarized-dark .btn.btn-ghost.btn-default:focus,.solarized-dark .btn.btn-ghost.btn-default:hover{border-color:#e0e0e0;color:#e0e0e0}.solarized-dark .btn.btn-ghost.btn-primary:focus,.solarized-dark .btn.btn-ghost.btn-primary:hover{border-color:#64b5f6;color:#64b5f6}.solarized-dark .btn.btn-ghost.btn-success:focus,.solarized-dark .btn.btn-ghost.btn-success:hover{border-color:#81c784;color:#81c784}.solarized-dark .btn.btn-ghost.btn-info:focus,.solarized-dark .btn.btn-ghost.btn-info:hover{border-color:#4dd0e1;color:#4dd0e1}.solarized-dark .btn.btn-ghost.btn-error:focus,.solarized-dark .btn.btn-ghost.btn-error:hover{border-color:#e57373;color:#e57373}.solarized-dark .btn.btn-ghost.btn-warning:focus,.solarized-dark .btn.btn-ghost.btn-warning:hover{border-color:#ffb74d;color:#ffb74d}.solarized-dark .avatarholder,.solarized-dark .placeholder{background-color:transparent;border-color:#90a4ae}.solarized-dark .menu .menu-item{color:#78909c;border-color:#90a4ae}.solarized-dark .menu .menu-item.active,.solarized-dark .menu .menu-item:hover{color:#fff;border-color:#78909c} \ No newline at end of file diff --git a/themes/after-dark/assets/css/vendor/hack/standard.css b/themes/after-dark/assets/css/vendor/hack/standard.css new file mode 100644 index 0000000..79fef56 --- /dev/null +++ b/themes/after-dark/assets/css/vendor/hack/standard.css @@ -0,0 +1 @@ +html{font-size:14px}.standard{font-family:-apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica,helvetica neue,Ubuntu,segoe ui,arial,sans-serif}.standard h1{font-size:2em;font-weight:700;margin:.67em 0}.standard h2{font-size:1.5em;font-weight:700;margin:.83em 0}.standard h3{font-size:1.17em;font-weight:700}.standard h3,.standard p{margin:1.75rem 0}.standard ol,.standard ul{display:block;list-style-type:disc;padding-left:20px;margin:1.75rem 0}.standard ol ul,.standard ul ul{margin:.75rem 0;list-style-type:square}.standard ol{list-style-type:decimal}.standard li{display:list-item;padding-left:0}.standard blockquote{margin:1.75rem 0;padding-left:10px;border-left:5px solid #f0f0f0}.standard pre{margin:1.75rem 0;white-space:pre}.standard hr{border:0;height:1px;display:block;background-color:#e2e2e2;margin:1.75rem 0} \ No newline at end of file diff --git a/themes/after-dark/assets/js/baseof.js b/themes/after-dark/assets/js/baseof.js new file mode 100644 index 0000000..8127fc6 --- /dev/null +++ b/themes/after-dark/assets/js/baseof.js @@ -0,0 +1 @@ +fetchInject(["{{ "/js/lazysizes.min.js" | relURL }}"]); diff --git a/themes/after-dark/assets/js/search.js b/themes/after-dark/assets/js/search.js new file mode 100644 index 0000000..84d68da --- /dev/null +++ b/themes/after-dark/assets/js/search.js @@ -0,0 +1,119 @@ +fetchInject([ + "{{ "/js/vue.min.js" | relURL }}", + "{{ "/js/lodash.custom.min.js" | relURL }}", + "{{ "/js/fuse.min.js" | relURL }}", + "{{ "/js/mark.min.js" | relURL }}" +]).then(() => { + (function (window, document, undefined) { + 'use strict'; + + const getQueryByParam = param => decodeURIComponent( + (location.search.split(param + '=')[1] || '').split('&')[0] + ).replace(/\+/g, ' '); + + const queryParam = 's'; + const selectors = { + appContainer: '#search-app', + resultContainer: '#search-results', + searchInput: '#query' + }; + + const fuseOpts = { + shouldSort: true, + tokenize: true, + matchAllTokens: true, + includeScore: true, + includeMatches: true, + keys: [ + { name: "title", weight: 0.8 }, + { name: "contents", weight: 0.5 }, + { name: "tags", weight: 0.3 }, + { name: "categories", weight: 0.3 } + ] + }; + + const getSearchInput = () => document.querySelector(selectors.searchInput); + const focusSearchInput = () => getSearchInput().focus(); + const searchQuery = getSearchInput().value = getQueryByParam(queryParam); + + const fuse = new Fuse([], fuseOpts); + window.fetch('/index.json').then(response => { + response.text().then(searchData => { + fuse.setCollection(JSON.parse(searchData)); + searchQuery && search(searchQuery); + }); + }); + + const getUrl = (query) => { + const encodedQuery = encodeURIComponent(query); + const url = "{{ .URL }}"; + return (encodedQuery) + ? `${url}?${queryParam}=${encodedQuery}` + : url; + }; + + let mark = new Mark( + document.querySelector( + selectors.resultContainer + ) + ); + + const app = new Vue({ + delimiters: ['{', '}'], + el: selectors.appContainer, + data: { + fuse: null, + results: [], + query: getQueryByParam(queryParam), + resultsForSearch: getQueryByParam(queryParam) + }, + mounted () { + this.fuse = fuse; + window.onpopstate = (evt) => { + this.query = evt.state.query; + }; + document.onkeyup = function (evt) { + evt.key === 's' && focusSearchInput(); + } + focusSearchInput(); + }, + watch: { + query () { + this.executeSearch(); + window.history.replaceState( + {query: this.query}, + null, + getUrl(this.query) + ); + } + }, + beforeUpdate: function () { + mark.unmark(); + }, + updated: function () { + this.$nextTick(function () { + mark = new Mark( + document.querySelector( + selectors.resultContainer + ) + ) + mark.mark(this.query.trim()); + }) + }, + methods: { + executeSearch: _.debounce(function () { + const trimmedQuery = this.query.trim(); + this.resultsForSearch = trimmedQuery; + this.results = (trimmedQuery) + ? this.fuse.search(trimmedQuery) + : []; + }, 250) + } + }); + + const search = query => { + app.results = fuse.search(query); + }; + + })(window, document); +}); diff --git a/themes/after-dark/assets/js/vendor/fetch-inject.min.js b/themes/after-dark/assets/js/vendor/fetch-inject.min.js new file mode 100644 index 0000000..cc9024f --- /dev/null +++ b/themes/after-dark/assets/js/vendor/fetch-inject.min.js @@ -0,0 +1,2 @@ +/*! Fetch Inject v2.0.2 | Copyright (C) 2017–2018 Josh Habdas | @license Zlib */ +var fetchInject=function(){"use strict";const e=function(e,t,r,n,o,c,i){c=t.createElement(r),i=t.getElementsByTagName(r)[0],c.appendChild(t.createTextNode(n.text)),c.onload=o(n),i?i.parentNode.insertBefore(c,i):t.head.appendChild(c)};return function(t,r){if(!arguments.length)return Promise.reject(new ReferenceError("Failed to execute 'fetchInject': 1 argument required but only 0 present."));if(arguments[0]&&arguments[0].constructor!==Array)return Promise.reject(new TypeError("Failed to execute 'fetchInject': argument 1 must be of type 'Array'."));if(arguments[1]&&arguments[1].constructor!==Promise)return Promise.reject(new TypeError("Failed to execute 'fetchInject': argument 2 must be of type 'Promise'."));const n=[],o=r?[].concat(r):[],c=[];return t.forEach(e=>o.push(window.fetch(e).then(e=>[e.clone().text(),e.blob()]).then(e=>Promise.all(e).then(e=>{n.push({text:e[0],blob:e[1]})})))),Promise.all(o).then(()=>(n.forEach(t=>{c.push({then:r=>{t.blob.type.includes("text/css")?e(window,document,"style",t,r):e(window,document,"script",t,r)}})}),Promise.all(c)))}}(); diff --git a/themes/after-dark/bin/help b/themes/after-dark/bin/help new file mode 100755 index 0000000..1299243 --- /dev/null +++ b/themes/after-dark/bin/help @@ -0,0 +1,10 @@ +#!/bin/sh + +THEME_PATH=themes/after-dark + +echo "Starting help server ..." +kill $(ps aux | awk '/[h]ugo.*1414/ {print $2}') 2>/dev/null +cd "$THEME_PATH"/docs && hugo serve --disableLiveReload --port 1414 1>/dev/null & +echo "Help server started at http://localhost:1414/" +echo "To stop it run \"kill \$(ps aux | awk '/[h]ugo.*1414/ {print \$2}')\"." +echo "To start it again run \"./themes/after-dark/bin/help\"." diff --git a/themes/after-dark/bin/install b/themes/after-dark/bin/install new file mode 100755 index 0000000..32d8761 --- /dev/null +++ b/themes/after-dark/bin/install @@ -0,0 +1,148 @@ +#!/bin/sh + +validate_hugo () { + # Exit with error if hugo is not installed + if ! hash hugo 2>/dev/null ; then + echo "Error: After Dark requires Hugo version 0.44 or greater" >&2; exit 1 + fi + + # Exit with error if not minimum required hugo version + re="v(0\d*\.([4-9][4-9]|[5-9])|[1-9]).*" + if ! hugo version | grep -qE "$re" ; then + echo "Error: After Dark requires Hugo version 0.44 or greater" >&2; exit 1 + fi +} + +create_site_dir () { + SITE_DIR="flying-toasters" + if [ "$1" != "" ] ; then + SITE_DIR="$1" + fi + + SITE_DIR_ABS="$PWD/$SITE_DIR" + mkdir -p "$SITE_DIR" +} + +create_site () { + echo "Creating a new Hugo site ..." + hugo new site "$SITE_DIR" 1>/dev/null + cd "$SITE_DIR" || exit 1 +} + +download_theme () { + echo "Downloading the latest version of After Dark ..." + LATEST_META=$(wget -qO - https://registry.npmjs.org/after-dark/latest) + vers=$(echo "$LATEST_META" | egrep -o "\"version\".*[^,]*," | cut -d ',' -f1 | cut -d ':' -f2 | tr -d '" ') + mkdir -p themes/after-dark + wget -qO - https://registry.npmjs.org/after-dark/-/after-dark-"$vers".tgz | tar --strip-components=1 -xz -C themes/after-dark + echo "Version $vers downloaded to $SITE_DIR/themes/after-dark" +} + +download_module () { + [ -z "$1" ] && { echo "Error: Attempt to download undefined module" >&2; exit 1; } + echo "Downloading $1 module for After Dark ..." + meta=$(wget -qO - https://registry.npmjs.org/"$1"/latest) + vers=$(echo "$meta" | egrep -o "\"version\".*[^,]*," | cut -d ',' -f1 | cut -d ':' -f2 | tr -d '" ') + mkdir -p themes/"$1" + wget -qO - https://registry.npmjs.org/"$1"/-/"$1"-"$vers".tgz | tar --strip-components=1 -xz -C themes/"$1" + echo "Version $vers downloaded to $SITE_DIR/themes/$1" +} + +configure_theme () { + echo "Configuring basic After Dark theme settings ..." + tee "config.toml" > /dev/null <

    + +
    +
    +

    After Dark is free and open-source software you can use to create a website, blog or app. Utilize the world's fastest framework for building websites and design your entire site right inside the terminal.

    +
    +
    + +
    + {{< hackcss-form action="/feature/quick-install" >}} + {{< hackcss-button type="primary" isghost="true" >}} + + +   Quick Install + {{< /hackcss-button >}} + {{< /hackcss-form >}} +
    + +
    + {{< figure alt="After Dark screenshots" src="/images/minimal-mac_2400x1800-fs8.png" lqipsrc="/images/minimal-mac_800x600-fs8.png" >}} +
    + +
    + + + +

    Streamlined Workflow

    + + + + + + + + + + + + + + +
    Develop and publish websites cross-platform using a single codebase with just one dependency and capabilities designed to make you more productive:
    FeaturesModulesShortcodesExtras
    334261
    +
    + +
    + + + +

    Unparalleled Speed

    +

    With {{< external text="0.615s average" href="https://forestry.io/blog/hugo-vs-jekyll-benchmark/" />}} builds and decisecond page loads you could conceivably develop and serve your content from an {{< external "https://amzn.to/2Wx7xJk" "ODROID" />}} in space.

    + +
    + +
    + + + + +

    Advanced Graphics

    +

    Add high-resolution, responsive images with low-quality image placeholders and engaging visual effects without even touching an image editor.

    + +
    + +
    + + + + +

    Rewards System

    + (Now in Beta!) +

    Earn rewards for keeping your software up-to-date and monetize attention to generate a borderless, low-maintenance & passive income.

    + +
    + + + +
    + + + +

    Easily Customized

    +

    Toggle between 1 of 8 customizable skin styles or disable them entirely and use custom layouts and styles to take complete design control.

    + +
    + +
    + + + + +

    Securely Designed

    +

    Verify the authenticity of your installation using secure cryptographic hashes and use CSP, SRI and Referrer Policy to lock down your content.

    + +
    + +
    + + + + + +

    Privacy Focused

    +

    Develop your entire site without Internet connectivity and expose an ephemeral Web server with e2e encryption and real-time traffic inspection.

    + +
    + +
    +
    +
    + {{< external rel="prefetch" target="_self" itemtype="significantLink" href="https://git.habd.as/comfusion/after-dark/activity" >}} + + + + Activity + {{< /external >}} +
    +
    + {{< external rel="prefetch" target="_self" itemtype="significantLink" href="https://git.habd.as/comfusion/after-dark/" >}} + + + + Source + {{< /external >}} +
    +
    + {{< external rel="noopener" itemtype="significantLink" href="https://t.me/comfusion" >}} + + + + Telegram + {{< /external >}} +
    +
    + {{< external title="Download" rel="prefetch" target="_self" itemtype="significantLink" href="https://git.habd.as/comfusion/after-dark/releases" >}} + + + + Download + {{< /external >}} +
    +
    + +
    +
    + {{< external rel="noopener license" href="https://choosealicense.com/licenses/wtfpl/" >}} + WTFPL logo + {{< /external >}} +
    +
    + +
    diff --git a/themes/after-dark/docs/content/extra/high-tea.md b/themes/after-dark/docs/content/extra/high-tea.md new file mode 100644 index 0000000..7720784 --- /dev/null +++ b/themes/after-dark/docs/content/extra/high-tea.md @@ -0,0 +1,22 @@ ++++ +title = "High Tea" +description = "Production-ready self-hosted full-stack git service." +categories = ["security"] +slug = "high-tea" +tags = ["privacy", "networking"] +features = ["related content", "snippets"] ++++ + +High Tea pairs {{< external href="https://gitea.io" text="Gitea" />}} with {{< external href="https://traefik.io" text="Traefik" />}} enabling you to manage your source code online using an intuitive and sleek-looking web-based interface: + +{{< figure alt="After Dark screenshots" + src="/images/addon-high-tea_1440x900-fs8.png" + lqipsrc="/images/addon-high-tea_960x600-fs8.png" + caption="Dashboard view within the High Tea Gitea application." +>}} + +Use it to manage organizations, create pull mirrors, selectively mark private repos, configure LFS and collaborate on code with others using git for free. + +High Tea also provides a Traefik integration so you can manage web services, monitor traffic and inspect service health in real-time. + +**Repository:** {{< external "https://git.habd.as/comfusion/high-tea" />}} diff --git a/themes/after-dark/docs/content/feature/_index.id.md b/themes/after-dark/docs/content/feature/_index.id.md new file mode 100644 index 0000000..a2bea39 --- /dev/null +++ b/themes/after-dark/docs/content/feature/_index.id.md @@ -0,0 +1,4 @@ ++++ +title = "Features" +description = "Menjelajahi bermacam-macam fitur yang tersedia untuk anda di After Dark." ++++ diff --git a/themes/after-dark/docs/content/feature/_index.md b/themes/after-dark/docs/content/feature/_index.md new file mode 100644 index 0000000..e0fce65 --- /dev/null +++ b/themes/after-dark/docs/content/feature/_index.md @@ -0,0 +1,6 @@ ++++ +title = "Features" +description = "Explore the many features available to you in After Dark." ++++ + +Choose a feature to learn more or run the Quick Install to download and install After Dark and use the Online Help try any of these yourself. diff --git a/themes/after-dark/docs/content/feature/air-gapping.id.md b/themes/after-dark/docs/content/feature/air-gapping.id.md new file mode 100644 index 0000000..fd22564 --- /dev/null +++ b/themes/after-dark/docs/content/feature/air-gapping.id.md @@ -0,0 +1,31 @@ ++++ +title = "Air Gapping" +description = "Membangun dan menjalankan seluruh situs anda tanpa akses internet." +categories = ["security"] +tags = ["privacy", "networking"] +feature = ["related content"] ++++ + +Kecuali menjalankan [Instal Cepat](../quick-install) After Dark tidak memerlukan koneksi internet untuk berfungsi. Manfaatkan fitur ini dengan berbagai cara yang kreatif: + +- Meninjau [Bantuan Online](../online-help) dokumen selama penerbangan dengan Virgin Galactic. +- Menyimpan jurnal pribadi saat melakukan couchsurfing melalui Asia Tenggara. +- Dengan aman menghasilkan konfigurasi untuk [Penambang Web](/module/toxic-swamp#config-generator) modul tambahan. +- Jalankan situs anda di belakang NAT atau firewall yang memblokir semua permintaan keluar. +- Mengembangkan konten anda menggunakan {{< external href="https://termux.com" text="Termux" />}} pada Android dengan mode pesawat. +- Laporkan berita dari Timor Barat tanpa memberitahu pihak berwenang. +- Membuat sebuah [Galeri Gambar](/module/hall-of-mirrors) saat trekking ke Gunung Nimbus melalui ferrata. + +Secara default After Dark tidak membuat permintaan keluar **kecuali** saat melihat dokumentasi tertentu [Bantuan Online](../online-help) untuk menutupi fungsionalitas terkait. + +## Hosting Ephemeral dengan enkripsi end-to-end + +Menggunakan {{< external href="https://serveo.net" text="Serveo" />}} secara singkat anda dapat membuka situs anda ke internet, tanpa perlu mendaftar. + +Sajikan dan buka situs anda dengan perintah berikut: + +```sh +$ hugo serve --disableLiveReload & ssh -R 80:localhost:1313 serveo.net +``` + +Setelah dimulai tekan `g` untuk inspeksi lalu lintas, atau berhenti untuk offline dan gunakan `fg` untuk kembali ke `hugo`. Instal {{< external href="https://matt.ucc.asn.au/dropbear/dropbear.html" text="dropbear" />}} or {{< external href="https://www.openssh.com" text="openssh" />}} jika anda membutuhkan `ssh`. diff --git a/themes/after-dark/docs/content/feature/air-gapping.md b/themes/after-dark/docs/content/feature/air-gapping.md new file mode 100644 index 0000000..2c3bd13 --- /dev/null +++ b/themes/after-dark/docs/content/feature/air-gapping.md @@ -0,0 +1,31 @@ ++++ +title = "Air Gapping" +description = "Build and run your entire site without Internet access." +categories = ["security"] +tags = ["privacy", "networking"] +features = ["related content"] ++++ + +Unless running the [Quick Install](../quick-install) After Dark does not require an Internet connection to function. Leverage this feature in creative ways: + +- Review the [Online Help](../online-help) docs during a flight on Virgin Galactic. +- Keep a personal journal while couchsurfing through Southeast Asia. +- Securely generate configuration for the [Web Mining](/module/toxic-swamp#config-generator) add-on module. +- Run your site behind a NAT or firewall blocking all outbound requests. +- Develop your content using {{< external href="https://termux.com" text="Termux" />}} on Android in airplane mode. +- Report news from Timor Barat without tipping off authorities. +- Create an [Image Gallery](/module/hall-of-mirrors) while trekking the Mount Nimbus via ferrata. + +By default After Dark makes no outbound requests **except** when viewing certain [Online Help](../online-help) documentation to cover related functionality. + +## Ephemeral hosting with end-to-end encryption + +Using {{< external href="https://serveo.net" text="Serveo" />}} you may briefly expose your site to the Internet with end-to-end encryption, no sign-up required. + +Serve and expose your site with the following command: + +```sh +$ hugo serve --disableLiveReload & ssh -R 80:localhost:1313 serveo.net +``` + +Once started press `g` for traffic inspection, or quit to go offline and use `fg` to return to `hugo`. Install {{< external href="https://matt.ucc.asn.au/dropbear/dropbear.html" text="dropbear" />}} or {{< external href="https://www.openssh.com" text="openssh" />}} if you need `ssh`. diff --git a/themes/after-dark/docs/content/feature/code-highlighter.id.md b/themes/after-dark/docs/content/feature/code-highlighter.id.md new file mode 100644 index 0000000..f68a240 --- /dev/null +++ b/themes/after-dark/docs/content/feature/code-highlighter.id.md @@ -0,0 +1,103 @@ ++++ +title = "Code Highlighter" +description = "Kode sorot ditulis lebih dari 160 bahasa." +categories = ["experience"] +tags = ["color", "style", "syntax"] +feature = ["snippets", "related content", "jit requests"] ++++ + +After Dark menggunakan versi yang disesuaikan {{< external href="https://atom.io/themes/one-dark-syntax" text="One Dark Syntax" />}} untuk menghasilkan kode yang ramah cetak untuk lebih dari 160 bahasa. + + +{{< hackcss-card header="Supported Languages" text="ABNF, ANTLR, APL, ActionScript, ActionScript 3, Ada, Angular2, ApacheConf, AppleScript, Awk, BNF, Ballerina, Base Makefile, Bash, Batchfile, BlitzBasic, Brainfuck, C, C#, C++, CFEngine3, CMake, COBOL, CSS, Cap'n Proto, Ceylon, ChaiScript, Cheetah, Clojure, CoffeeScript, Common Lisp, Coq, Crystal, Cython, DTD, Dart, Diff, Django/Jinja, Docker, EBNF, Elixir, Elm, EmacsLisp, Erlang, FSharp, Factor, Fish, Forth, Fortran, GAS, GDScript, GLSL, Genshi, Genshi HTML, Genshi Text, Gnuplot, Go, Go HTML Template, Go Text Template, Groovy, HTML, HTTP, Handlebars, Haskell, Haxe, Hexdump, Hy, INI, Idris, Io, JSON, JSX, Java, JavaScript, Julia, Kotlin, LLVM, Lighttpd configuration file, Lua, Mako, Mason, Mathematica, MiniZinc, Modula-2, MorrowindScript, MySQL, Myghty, NASM, Newspeak, Nginx configuration file, Nim, Nix, OCaml, Objective-C, Octave, Org Mode, PHP, PL/pgSQL, POVRay, PacmanConf, Perl, Pig, PkgConfig, PostScript, PostgreSQL SQL dialect, PowerShell, Prolog, Protocol Buffer, Puppet, Python, Python 3, QBasic, R, Racket, Ragel, Rexx, Ruby, Rust, SCSS, SPARQL, SQL, Sass, Scala, Scheme, Scilab, Smalltalk, Smarty, Snobol, Solidity, SquidConf, Swift, TASM, TOML, Tcl, Tcsh, TeX, Termcap, Terminfo, Terraform, Thrift, Transact-SQL, Turtle, Twig, TypeScript, TypoScript, TypoScriptCssData, TypoScriptHtmlData, VHDL, VimL, WDTE, XML, Xorg, YAML, cfstatement, markdown, reStructuredText, reg, systemverilog, verilog" />}} + +Untuk mengaktifkan highlighter gunakan Hugo {{% external href="https://gohugo.io/content-management/syntax-highlighting/#highlight-shortcode" %}}`highlight` shortcode{{% /external %}} atau menunjukkan {{< external href="https://gohugo.io/content-management/syntax-highlighting/#list-of-chroma-highlighting-languages" text="highlighting language" />}} di blok kode berpagar di dalam markdown anda: + +```` +```go-html-template +
    + {{ .body }} +
    +``` +```` + +Menghasilkan kode yang dihighlight seperti berikut: + +```go-html-template +
    + {{ .body }} +
    +``` + +Atau gabungkan {{% external href="https://gohugo.io/content-management/syntax-highlighting/#highlight-shortcode" %}}`highlight` shortcode{{% /external %}} dan `include` [Snippet](../snippets): + +```html +{{}} +{{}} +{{}} +``` + +Untuk melihat CSS yang digunakan untuk menampilkan highlight highlighter yang disorot: + +{{< highlight css >}} +{{< include type="source" file="themes/after-dark/static/css/syntax.css" >}} +{{< /highlight >}} + +Tidak menyukai warnanya? Tidak masalah. Gunakan perintah `hugo gen chromastyles` untuk {{< external href="https://gohugo.io/content-management/syntax-highlighting/#generate-syntax-highlighter-css" text="generate your own" />}} `syntax.css` stylesheet dari {{< external href="https://help.farbox.com/pygments.html" text="style gallery" />}} dan menyesuaikannya menggunakan tujuan umum {{< external href="https://git.habd.as/comfusion/atom-one-chroma" text="Atom One Chroma" />}} tema rol sintaks. + +Dan jika anda benar-benar berani berusaha mengapa tidak membuat beberapa seni ASCII yang dapat dieksekusi yang mewakili nama permainan yang anda implementasikan dalam bahasa yang digunakan: + +```brainfuck + + Linus Akesson mempersembahkan: + The Game Of Life implemented in Brainfuck + + +>>++++[<++++>-]<[<++++++>-]+[<[>>>>+<<<<-]>>>>[<<<<+>>>>>>+<<-]<+ + +++[>++++++++<-]>.[-]<+++[>+++<-]>+[>>.+<<-]>>[-]<<<++[<+++++>-]<.<<[>>>>+ + <<<<-]>>>>[<<<<+>>>>>>+<<-]<<[>>>>.+<<<++++++++++[<[>>+<<-]>>[<<+>>>>>++++++++ + +++<<<-]<[>+<-]>[<+>>>>+<<<-]>>>[>>>>>>>>>>>>+>+<< <<<<<<<<<<<-]>>>>>>>>>> +>>[-[>>>>+<<<<-]>[>>>>+<<<<-]>>>]> >>[<<<+>> >- ]<<<[>>+>+<<<-]>[->[<<< +<+>>>>-]<[<<< <+> >>>-]<<<< ]< ++++++ ++ +[>+++++<-]>>[<<+>>-]< +<[>---<-]>.[- ] <<<<<<<<< < <<<<<< < -]++++++++++.[-]<-]>>> +>[-]<[-]+++++ +++[>++++ ++++< - ]>--.[-]<,----------[<+ +>-]>>>>>>+<<<<< < <[>+>>>>>+>[ -]<<< << <<-]>++++++++++>>>>>[[-] +<<,<<<<<<<->>>> > >>[<<<<+>>>>-]<<<<[>>>>+ >+<<<<<-]>>>>>----------[<<<< +<<<<+<[>>>>+<<< <-]>>>>[<<<<+>>>>>>+<<- ]>[>-<-]>++++++++++[>+++++++++ +++<-]<<<<<<[>>> >+<<<<-]>>>>[<<<<+>>>>> >+<<-]>>>>[<<->>-]<<++++++++++ +[>+<-]>[>>>>>>> >>>>>+>+<<<< <<<<< <<<<-]>>> >> >>>>>>>[-[>>> +>+<<<<-]>[>>>> +<<<<-]>> > ]>> > [<< < +>>>-]+<<<[> +>>-<<<-]>[->[< <<<+>>>>-] <[ < < < <+>>>>-]<<< +<]<<<<<<<<<<<, [ -]]>]>[-+++ ++ + +++ ++[>+++++++ +++++>+++++++++ + +<<-]>[-[>>> +<<<- ]>>>[ < <<+ >>>>>>>+>+< +<<<<-]>>>>[-[> > >>+<<<<-]>[> >>>+< < <<-]> > >]> >>[<<<+>>>- +]<<<[>>+>+<<< - ]>[->[<<<<+> >>>-] < [<<< < +>> >>-]<<<<]<< +<<<<<<[>>>+<< < -]>>>[<<<+>> >>>>> + >+<< < <<-]<<[>>+<< +-]>>[<<+>>>>> >+>+<<<<<-]>> >>[-[ > >>>+ < <<<-]>[>>>>+< +<<<-]>[>>>>+< <<<-]>>]>>>[ - ]<[>+< - ]<[ - [<<<<+>>>>-]<<< +<]<<<<<<<<]<< <<<<<<<<++++ + +++++ [ >+++ + ++++++[<[>>+<<-]>>[<<+ +>>>>>++++++++ + ++<<< -] < [>+<- ] >[<+ > >>>+<<<-]>>>[<<<+>>>-] +<<<[>>>+>>>> > +<<<< << <<-]> > >>>> >>>[>>+<<-]>>[<<+<+>> +>-]<<<------ - -----[ >> >+<<< - ]>>> [<<<+> > >>>>>+>+<<<< +<-]>>>>[-[>> > >+<<<< -] > [>>>> + <<<<- ]>>> ] >>>[<<<+>>>- +]<<<[>>+>+<< < -]>>> >> > > [<<<+ >>>-]<<<[>>> ++<<<<<+>>- ]> > >>>>>[< <<+>>>-]<<<[> +>>+<<<<<<< <<+ > >>>>>-]< <<<<<<[->[<<<<+ +>>>>-]<[<<<<+>>>>-]<<<<]>[<<<<<< <+>>> >>>>-]<<<< <<<<<+++++++++++[> +>>+<<<-]>>>[<<<+>>>>>>>+>+<<<<<-]>>>>[-[> >>>+<<<<-]>[>>>>+<<<<-]>>>]>>>[<<< ++>>>-]<<<[>>+>+<<<-]>>>>>>>[<<<+>>>-]<<<[ >>>+<<<<<+>>-]>>>>>>>[<<<+>>>-]<<< +[>>>+<<<<<<<<<+>>>>>>-]<<<<<<<[->[< < < <+>>>>-]<[<<<<+>>>>-]<<<<]>[<<<<<<< ++>>>>>>>-]<<<<<<<<<+++++++++++[>>> > >>>+>+<<<<<<<<-]>>>>>>>[-[>>>>+<<<<- +]>[>>>>+<<<<-]>>>]>>>[<<<+>>>-]<<< [ >>+>+<<<-]>>>>>>>[<<<+>>>-]<<<[>>>+<< +<<<+>>-]>>>>>>>[<<<+>>>-]<<<[>>>+< <<<<<<<<+>>>>>>-]<<<<<<<[->[<<<<+>>>>- + ]<[<<<<+>>>>-]<<<<]>[<<<<<<<+>>>>> >>-]<<<<<<<----[>>>>>>>+<<<<<<<+[>>>>> + >>-<<<<<<<[-]]<<<<<<<[>>>>>>>>>>>>+>+<<<<<<<<<<<<<-][ lft@df.lth.se ]>>>>> + >>>>>>>[-[>>>>+<<<<-]>[>>>>+<<<<-]>[>>>>+<<<<-]>>]>>>[-]<[>+<-]<[-[<<<<+>> + >>-]<<<<]<<<<<<[-]]<<<<<<<[-]<<<<-]<-]>>>>>>>>>>>[-]<<]<<<<<<<<<<] + + Sebagai contoh, ketik "fg" untuk menghidupkan sel di baris f dan kolom g + Tekan enter untuk menghitung generasi berikutnya + Ketik q untuk berhenti + +``` + +Itu benar-benar Brainfuck. diff --git a/themes/after-dark/docs/content/feature/code-highlighter.md b/themes/after-dark/docs/content/feature/code-highlighter.md new file mode 100644 index 0000000..6f7be19 --- /dev/null +++ b/themes/after-dark/docs/content/feature/code-highlighter.md @@ -0,0 +1,103 @@ ++++ +title = "Code Highlighter" +description = "Highlight code written in more than 160 languages." +categories = ["experience"] +tags = ["color", "style", "syntax"] +features = ["snippets", "related content", "jit requests"] ++++ + +After Dark uses a customized version of {{< external href="https://atom.io/themes/one-dark-syntax" text="One Dark Syntax" />}} to produce print-friendly code highlighting for more than 160 languages. + + +{{< hackcss-card header="Supported Languages" text="ABNF, ANTLR, APL, ActionScript, ActionScript 3, Ada, Angular2, ApacheConf, AppleScript, Awk, BNF, Ballerina, Base Makefile, Bash, Batchfile, BlitzBasic, Brainfuck, C, C#, C++, CFEngine3, CMake, COBOL, CSS, Cap'n Proto, Ceylon, ChaiScript, Cheetah, Clojure, CoffeeScript, Common Lisp, Coq, Crystal, Cython, DTD, Dart, Diff, Django/Jinja, Docker, EBNF, Elixir, Elm, EmacsLisp, Erlang, FSharp, Factor, Fish, Forth, Fortran, GAS, GDScript, GLSL, Genshi, Genshi HTML, Genshi Text, Gnuplot, Go, Go HTML Template, Go Text Template, Groovy, HTML, HTTP, Handlebars, Haskell, Haxe, Hexdump, Hy, INI, Idris, Io, JSON, JSX, Java, JavaScript, Julia, Kotlin, LLVM, Lighttpd configuration file, Lua, Mako, Mason, Mathematica, MiniZinc, Modula-2, MorrowindScript, MySQL, Myghty, NASM, Newspeak, Nginx configuration file, Nim, Nix, OCaml, Objective-C, Octave, Org Mode, PHP, PL/pgSQL, POVRay, PacmanConf, Perl, Pig, PkgConfig, PostScript, PostgreSQL SQL dialect, PowerShell, Prolog, Protocol Buffer, Puppet, Python, Python 3, QBasic, R, Racket, Ragel, Rexx, Ruby, Rust, SCSS, SPARQL, SQL, Sass, Scala, Scheme, Scilab, Smalltalk, Smarty, Snobol, Solidity, SquidConf, Swift, TASM, TOML, Tcl, Tcsh, TeX, Termcap, Terminfo, Terraform, Thrift, Transact-SQL, Turtle, Twig, TypeScript, TypoScript, TypoScriptCssData, TypoScriptHtmlData, VHDL, VimL, WDTE, XML, Xorg, YAML, cfstatement, markdown, reStructuredText, reg, systemverilog, verilog" />}} + +To activate the highlighter use the Hugo {{% external href="https://gohugo.io/content-management/syntax-highlighting/#highlight-shortcode" %}}`highlight` shortcode{{% /external %}} or indicate the {{< external href="https://gohugo.io/content-management/syntax-highlighting/#list-of-chroma-highlighting-languages" text="highlighting language" />}} in a fenced code block within your markdown: + +```` +```go-html-template +
    + {{ .body }} +
    +``` +```` + +Resulting in the following highlighted code: + +```go-html-template +
    + {{ .body }} +
    +``` + +Or combine with the {{% external href="https://gohugo.io/content-management/syntax-highlighting/#highlight-shortcode" %}}`highlight` shortcode{{% /external %}} and `include` [Snippet](../snippets): + +```html +{{}} +{{}} +{{}} +``` + +To see the CSS used to display the highlighter highlighting highlighted: + +{{< highlight css >}} +{{< include type="source" file="themes/after-dark/static/css/syntax.css" >}} +{{< /highlight >}} + +Not feeling the colors? No problem. Use the `hugo gen chromastyles` command to {{< external href="https://gohugo.io/content-management/syntax-highlighting/#generate-syntax-highlighter-css" text="generate your own" />}} `syntax.css` stylesheet from the {{< external href="https://help.farbox.com/pygments.html" text="style gallery" />}} and customize it using the general-purpose {{< external href="https://git.habd.as/comfusion/atom-one-chroma" text="Atom One Chroma" />}} syntax theme-roller. + +And if you're really enterprising why not create some executable ASCII art representing the name of the game you implemented in the language used: + +```brainfuck + + Linus Akesson presents: + The Game Of Life implemented in Brainfuck + + +>>++++[<++++>-]<[<++++++>-]+[<[>>>>+<<<<-]>>>>[<<<<+>>>>>>+<<-]<+ + +++[>++++++++<-]>.[-]<+++[>+++<-]>+[>>.+<<-]>>[-]<<<++[<+++++>-]<.<<[>>>>+ + <<<<-]>>>>[<<<<+>>>>>>+<<-]<<[>>>>.+<<<++++++++++[<[>>+<<-]>>[<<+>>>>>++++++++ + +++<<<-]<[>+<-]>[<+>>>>+<<<-]>>>[>>>>>>>>>>>>+>+<< <<<<<<<<<<<-]>>>>>>>>>> +>>[-[>>>>+<<<<-]>[>>>>+<<<<-]>>>]> >>[<<<+>> >- ]<<<[>>+>+<<<-]>[->[<<< +<+>>>>-]<[<<< <+> >>>-]<<<< ]< ++++++ ++ +[>+++++<-]>>[<<+>>-]< +<[>---<-]>.[- ] <<<<<<<<< < <<<<<< < -]++++++++++.[-]<-]>>> +>[-]<[-]+++++ +++[>++++ ++++< - ]>--.[-]<,----------[<+ +>-]>>>>>>+<<<<< < <[>+>>>>>+>[ -]<<< << <<-]>++++++++++>>>>>[[-] +<<,<<<<<<<->>>> > >>[<<<<+>>>>-]<<<<[>>>>+ >+<<<<<-]>>>>>----------[<<<< +<<<<+<[>>>>+<<< <-]>>>>[<<<<+>>>>>>+<<- ]>[>-<-]>++++++++++[>+++++++++ +++<-]<<<<<<[>>> >+<<<<-]>>>>[<<<<+>>>>> >+<<-]>>>>[<<->>-]<<++++++++++ +[>+<-]>[>>>>>>> >>>>>+>+<<<< <<<<< <<<<-]>>> >> >>>>>>>[-[>>> +>+<<<<-]>[>>>> +<<<<-]>> > ]>> > [<< < +>>>-]+<<<[> +>>-<<<-]>[->[< <<<+>>>>-] <[ < < < <+>>>>-]<<< +<]<<<<<<<<<<<, [ -]]>]>[-+++ ++ + +++ ++[>+++++++ +++++>+++++++++ + +<<-]>[-[>>> +<<<- ]>>>[ < <<+ >>>>>>>+>+< +<<<<-]>>>>[-[> > >>+<<<<-]>[> >>>+< < <<-]> > >]> >>[<<<+>>>- +]<<<[>>+>+<<< - ]>[->[<<<<+> >>>-] < [<<< < +>> >>-]<<<<]<< +<<<<<<[>>>+<< < -]>>>[<<<+>> >>>>> + >+<< < <<-]<<[>>+<< +-]>>[<<+>>>>> >+>+<<<<<-]>> >>[-[ > >>>+ < <<<-]>[>>>>+< +<<<-]>[>>>>+< <<<-]>>]>>>[ - ]<[>+< - ]<[ - [<<<<+>>>>-]<<< +<]<<<<<<<<]<< <<<<<<<<++++ + +++++ [ >+++ + ++++++[<[>>+<<-]>>[<<+ +>>>>>++++++++ + ++<<< -] < [>+<- ] >[<+ > >>>+<<<-]>>>[<<<+>>>-] +<<<[>>>+>>>> > +<<<< << <<-]> > >>>> >>>[>>+<<-]>>[<<+<+>> +>-]<<<------ - -----[ >> >+<<< - ]>>> [<<<+> > >>>>>+>+<<<< +<-]>>>>[-[>> > >+<<<< -] > [>>>> + <<<<- ]>>> ] >>>[<<<+>>>- +]<<<[>>+>+<< < -]>>> >> > > [<<<+ >>>-]<<<[>>> ++<<<<<+>>- ]> > >>>>>[< <<+>>>-]<<<[> +>>+<<<<<<< <<+ > >>>>>-]< <<<<<<[->[<<<<+ +>>>>-]<[<<<<+>>>>-]<<<<]>[<<<<<< <+>>> >>>>-]<<<< <<<<<+++++++++++[> +>>+<<<-]>>>[<<<+>>>>>>>+>+<<<<<-]>>>>[-[> >>>+<<<<-]>[>>>>+<<<<-]>>>]>>>[<<< ++>>>-]<<<[>>+>+<<<-]>>>>>>>[<<<+>>>-]<<<[ >>>+<<<<<+>>-]>>>>>>>[<<<+>>>-]<<< +[>>>+<<<<<<<<<+>>>>>>-]<<<<<<<[->[< < < <+>>>>-]<[<<<<+>>>>-]<<<<]>[<<<<<<< ++>>>>>>>-]<<<<<<<<<+++++++++++[>>> > >>>+>+<<<<<<<<-]>>>>>>>[-[>>>>+<<<<- +]>[>>>>+<<<<-]>>>]>>>[<<<+>>>-]<<< [ >>+>+<<<-]>>>>>>>[<<<+>>>-]<<<[>>>+<< +<<<+>>-]>>>>>>>[<<<+>>>-]<<<[>>>+< <<<<<<<<+>>>>>>-]<<<<<<<[->[<<<<+>>>>- + ]<[<<<<+>>>>-]<<<<]>[<<<<<<<+>>>>> >>-]<<<<<<<----[>>>>>>>+<<<<<<<+[>>>>> + >>-<<<<<<<[-]]<<<<<<<[>>>>>>>>>>>>+>+<<<<<<<<<<<<<-][ lft@df.lth.se ]>>>>> + >>>>>>>[-[>>>>+<<<<-]>[>>>>+<<<<-]>[>>>>+<<<<-]>>]>>>[-]<[>+<-]<[-[<<<<+>> + >>-]<<<<]<<<<<<[-]]<<<<<<<[-]<<<<-]<-]>>>>>>>>>>>[-]<<]<<<<<<<<<<] + + Type for instance "fg" to toggle the cell at row f and column g + Hit enter to calculate the next generation + Type q to quit + +``` + +That really is Brainfuck. diff --git a/themes/after-dark/docs/content/feature/content-security-policy.md b/themes/after-dark/docs/content/feature/content-security-policy.md new file mode 100644 index 0000000..a8e5561 --- /dev/null +++ b/themes/after-dark/docs/content/feature/content-security-policy.md @@ -0,0 +1,84 @@ ++++ +title = "Content Security Policy" +description = "Control resources the user agent is allowed to load." +categories = ["security"] +tags = ["privacy", "xss", "csp"] +features = ["code highlighter", "related content", "snippets"] +[blackfriday] + smartypants = false ++++ + +After Dark helps you secure your site using Content Security Policy (CSP). Basic CSP is enabled by default and [Advanced Configurations]({{< relref "#advanced-configuration" >}}) are also possible. + +Basic CSP offers minimal protection but is still helpful as it keeps resources from accidentally being loaded over `http`. In addition, Basic CSP automatically blocks all Flash and Silverlight objects before they have a chance to load. + +## Basic Configuration + +Disable CSP site-wide add the following to your site config: + +```toml +[params] + disable_csp = true # disable site-wide +``` + +Disable CSP for a specific page using front matter: + +```toml +disable_csp = true # disable for page +``` + +## Advanced Configuration + +Advanced configuration allows you to fine-tune policy directives based on your specific needs. To get started specify at least 1 CSP directive in site config. + +{{% hackcss-alert type="info" %}}**Note:** You may wish to {{< external "https://gohugo.io/getting-started/usage/#disable-livereload" "Disable LiveReload" />}} while defining advanced config.{{% /hackcss-alert %}} + +Define the {{< external "https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src" "script-src" />}} directive site-wide: + +```toml +[params.security.csp.directives] + scriptSrc = [ + "'self'", + "'unsafe-inline'", + "https:", + "'sha512-Jx/MqTxYWqHdoOkHItRJJZCvFDhERPr5gG4I5ESu3V+BgQyAQ6wXfdsGzhzmT0yyvkAWz2jbrn81q90RRJTSTg=='", + "'sha512-hno7WeTIciCJSjg/myjyK30HYkrcGCVwo4g4SpUalvrs3r2lS7bPNIQwbCNypKbg7BZ1sA4AsGnk6Gq4NOKpGA=='", + "'sha512-ISTAV0GadOIz/NXXHOS&+eCM0ysXVVHhQTlvA6LJxz/DeA5yIxm0Vqf5IE&+WH0yuuXkayAKtoZkQ326nch5f/fg=='", + "'strict-dynamic'" + ] +``` + +This will override the `script-src` directive's advanced default: + +Directive | Mapping | Advanced Default +--- | --- | --- +default-src | defaultSrc | 'none' +connect-src | connectSrc | 'self' +font-src | fontSrc | 'self' +media-src | mediaSrc | 'self' +img-src | imgSrc | 'self' data: +script-src | scriptSrc | 'none' +style-src | styleSrc | 'self' 'unsafe-inline' +frame-src | frameSrc | 'self' +object-src | objectSrc | 'none' + +Once set, view the `Content-Security-Policy` meta tag in the `head` of your page and inspect the console for errors as you navigate to different pages. Each time you encounter an error caused by CSP is an opportunity to improve your policy. + +Add page-specific directives from page front matter using the same structure and naming conventions used in site config to append items for that page: + +```toml +[security.csp.directives] + scriptSrc = [ + "'sha512-TKVuLlCT8+a0Chpa6Pw3clhu9fhZ9JOzgblgxQaUQVP/z4lfPnrdyWDOgucORnS2qapWu/iPVG2d0ywyGH2NjA=='" + ] +``` + +{{% hackcss-alert type="info" %}}**Note:** Page-specific directives _will not_ override any site-wide setting and will not apply without first overriding its advanced default via site config.{{% /hackcss-alert %}} + +Continue overriding advanced defaults as necessary until all CSP errors are resolved or you're satisfied with the changes. + +## Additional Resources + +- About {{< external "https://infosec.mozilla.org/guidelines/web_security#content-security-policy" "Content Security Policy" />}} +- Test policy with {{< external "https://observatory.mozilla.org" "Observatory by Mozilla" />}} +- See {{< external "https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy#Examples" "CSP examples" />}} to learn more diff --git a/themes/after-dark/docs/content/feature/custom-layouts.id.md b/themes/after-dark/docs/content/feature/custom-layouts.id.md new file mode 100644 index 0000000..c5482c4 --- /dev/null +++ b/themes/after-dark/docs/content/feature/custom-layouts.id.md @@ -0,0 +1,82 @@ ++++ +title = "Custom Layouts" +description = "Menyesuaikan tata letak tanpa memodifikasi sumber tema." +categories = ["customizing"] +tags = ["layout", "templating", "style"] +feature = ["code highlighter", "snippets", "related content"] ++++ + +After Dark menggunakan blok template untuk memfasilitasi pembuatan tata letak halaman yang unik di mana saja di dalam situs anda. Gunakan itu untuk menambah [Snippets](../snippets) ke setiap bagian halaman, secara selektif [Custom Styles](../custom-styles) atau tambahkan kira-kira satu bagian ke beranda. + +## Bagaimana cara kerjanya + +Berikan 'block' berikut ini dengan nilai standart pilihan: + +```go-html-template +{{ block "title" }}Judul Situs{{ end }} +``` + +Templates warisan dapat menghilangkan blok dan mempertahankan nilai standart atau menerangkan block untuk mengubah nilainya, seperti yang ditunjukan berikut ini: + +```go-html-template +{{ define "title" }}Judul Halaman | Site Title{{ end }} +``` + +Digabungkan dengan {{< external href="https://gohugo.io/templates/lookup-order/" text="Lookup Order in Hugo" />}} block menjadi penting dalam menunjuk bagian dalam yang dapat diedit, dan meningkatkan penggunaan kembali file templates yang sudah ada. + +## Diterapkan dalam konteks + +Inilah template yang digunakan untuk menampilkan sebuah halaman di After Dark: + +{{< highlight go-html-template >}} +{{< include "themes/after-dark/layouts/_default/single.html" >}} +{{< /highlight >}} + +Tidak banyak tentang itu. Sebagian besar kode diwarisi dari template lain, memberikan gambaran yang jelas tentang struktur halaman dan membuat modifikasi yang sepele. + +## Membuat milik anda sendiri + +Bayangkan anda membuat bagian Buku Audio untuk situs anda dan menginginkan dua layout khusus baru: yang satu untuk membuat daftar klip audio dan yang lain untuk menjelaskan. + +Untuk mendapatkan hal tersebut dengan menggunakan template block, pertama buat bagian 'audiobook' dengan satu halaman untuk menggambarkan klip: + +```sh +$ hugo new audiobook/the-power-of-now.md +``` + +Menghasilkan struktur pohon sebagai berikut: + +``` +├── assets +├── content +│   └── audiobook +│   └── the-power-of-now.md +├── layouts +``` + +Jika sudah melayani situs anda bagian dan halaman audiobooks anda akan segera muncul menggunakan standart template block. Untuk menyesuaikan dari standart, tambahkan `list.html` dan `single.html` ke a `layouts/audiobook` di situs direktori anda. + +Jika file belum ada, salinlah dari tema standart: + +```sh +$ mkdir -p layouts/audiobook +$ cp themes/after-dark/layouts/_default/list.html layouts/audiobook +$ cp themes/after-dark/layouts/_default/single.html layouts/audiobook +``` + +Menghasilkan struktur pohon`layouts` sebagai berikut: + +``` +├── content +├── layouts +│   └── audiobook +│   ├── list.html +│ └── single.html +├── static +``` + +Sesuaikan `list.html` dan `single.html` layouts dan gunakan [Custom Styles](../custom-styles) untuk mendapatkan hasil yang diinginkan. Gunakan referensi sumber daya berikut sebagai bantuan: + +- {{< external "https://gohugo.io/templates/" />}} untuk fungsi templating dan logika +- {{< external "devdocs.io" />}} untuk HTML yang komprehensif dan CSS reference +- {{< external "https://inclusive-components.design" />}} untuk ide pola design diff --git a/themes/after-dark/docs/content/feature/custom-layouts.md b/themes/after-dark/docs/content/feature/custom-layouts.md new file mode 100644 index 0000000..ee2d345 --- /dev/null +++ b/themes/after-dark/docs/content/feature/custom-layouts.md @@ -0,0 +1,85 @@ ++++ +title = "Custom Layouts" +description = "Customize layouts without modifying theme source." +categories = ["customizing"] +tags = ["layout", "templating", "style"] +features = ["code highlighter", "snippets", "related content"] ++++ + +After Dark uses block templates to facilitate the creation of unique page layouts anywhere on your site. Use them to add [Snippets](../snippets) to pages in a section, selectively apply [Custom Styles](../custom-styles) or add an about section to the homepage. + +## How it works + +Given the following `block` with optional default value: + +```go-html-template +{{ block "title" }}Site Title{{ end }} +``` + +Inheriting templates may omit the block and keep the default value or `define` the block to change its value, as shown here: + +```go-html-template +{{ define "title" }}Page Title | Site Title{{ end }} +``` + +Combined with {{< external href="https://gohugo.io/templates/lookup-order/" text="Lookup Order in Hugo" />}} blocks become valuable in designating editable regions within, and improving reuse of, existing template files. + +## Applied in context + +Here's the template used to display an individual page in After Dark: + +{{< highlight go-html-template >}} +{{< include "themes/after-dark/layouts/_default/single.html" >}} +{{< /highlight >}} + +There's not much to it. Most of the code is inherited from another template, giving a clear picture of the page structure and making modifications trivial. + +## Creating your own + +Imagine you're creating an Audiobooks section for your site and want two new custom layouts: one to list audio clips and another to describe them. + +To achieve this using block templates first create an `audiobook` section with a single page to describe a clip: + +```sh +$ hugo new audiobook/the-power-of-now.md +``` + +Resulting in the following `content` tree structure: + +``` +├── assets +├── content +│   └── audiobook +│   └── the-power-of-now.md +├── layouts +``` + +If already serving your site the Audiobooks section and page will appear immediately using the default block templates. To customize from default add a `list.html` and `single.html` to a `layouts/audiobook` directory in your site. + +If the files don't exist yet, copy them from theme defaults: + +```sh +$ mkdir -p layouts/audiobook +$ cp themes/after-dark/layouts/_default/list.html layouts/audiobook +$ cp themes/after-dark/layouts/_default/single.html layouts/audiobook +``` + +Resulting in the following `layouts` tree structure: + +``` +├── content +├── layouts +│   └── audiobook +│   ├── list.html +│ └── single.html +├── static +``` + +Adjust `list.html` and `single.html` layouts and use [Custom Styles](../custom-styles) to achieve the desired result. Reference the following resources for help: + +- {{< external "https://gohugo.io/templates/" />}} for templating functions and logic +- {{< external "devdocs.io" />}} for a comprehensive HTML and CSS reference +- {{< external "https://internetingishard.com" />}} learn HTML & CSS for free +- {{< external "https://inclusive-components.design" />}} for design pattern ideas +- {{< external "https://diveintohtml5.info" >}} background behind HTML5 +- {{< external "https://gsnedders.html5.org/outliner/" />}} test your HTML document outline diff --git a/themes/after-dark/docs/content/feature/custom-styles.id.md b/themes/after-dark/docs/content/feature/custom-styles.id.md new file mode 100644 index 0000000..cccc588 --- /dev/null +++ b/themes/after-dark/docs/content/feature/custom-styles.id.md @@ -0,0 +1,36 @@ ++++ +title = "Custom Styles" +description = "Mengubah gaya tema untuk design kontrol yang lengkap." +categories = ["customizing"] +tags = ["color", "style", "branding"] +feature = ["code highlighter", "snippets"] ++++ + +After Dark menggunakan {{< external href="https://gohugo.io/hugo-pipes/" text="Hugo Pipes" />}} untuk mengaktifkan kostomisasi gaya tema menggunakan CSS. Jika tidak diubah gaya khusus berikut disediakan secara standart: + +{{< highlight css "linenos=inline" >}} +{{< include "themes/after-dark/assets/css/custom.css" >}} +{{< /highlight >}} + +Sesuaikan dari `custom.css` di situs `assets/css` direktori: + +``` +├── archetypes +├── assets +│   └── css +│   └── custom.css +├── content +``` + +Jika file belum ada, salinlah dari tema standart: + +```sh +$ mkdir -p assets/css +$ cp themes/after-dark/assets/css/custom.css assets/css +``` + +Kemudian buka file dan mulailah mengedit, atau menghapusnya untuk mengembalikan ke bentuk standart. + +{{< hackcss-alert type="info" >}} + Tip: Pilih dari ribuan palet warna yang telah ditetapkan {{< external "https://coolors.co/" />}}. +{{< /hackcss-alert >}} diff --git a/themes/after-dark/docs/content/feature/custom-styles.md b/themes/after-dark/docs/content/feature/custom-styles.md new file mode 100644 index 0000000..2c41e4e --- /dev/null +++ b/themes/after-dark/docs/content/feature/custom-styles.md @@ -0,0 +1,36 @@ ++++ +title = "Custom Styles" +description = "Modify theme styles for complete design control." +categories = ["customizing"] +tags = ["color", "style", "branding"] +features = ["code highlighter", "snippets"] ++++ + +After Dark uses {{< external href="https://gohugo.io/hugo-pipes/" text="Hugo Pipes" />}} to enable customization of theme styles using CSS. Left unmodified the following custom styles are provided by default: + +{{< highlight css "linenos=inline" >}} +{{< include "themes/after-dark/assets/css/custom.css" >}} +{{< /highlight >}} + +Adjust them from `custom.css` in the site `assets/css` directory: + +``` +├── archetypes +├── assets +│   └── css +│   └── custom.css +├── content +``` + +If the file doesn't exist yet, copy it from the theme default: + +```sh +$ mkdir -p assets/css +$ cp themes/after-dark/assets/css/custom.css assets/css +``` + +Then open the file and begin editing, or remove it to restore default styles. + +{{< hackcss-alert type="info" >}} + Tip: Choose from thousands of predefined color palettes on {{< external "https://coolors.co/" />}}. +{{< /hackcss-alert >}} diff --git a/themes/after-dark/docs/content/feature/error-page.id.md b/themes/after-dark/docs/content/feature/error-page.id.md new file mode 100644 index 0000000..8da2c8f --- /dev/null +++ b/themes/after-dark/docs/content/feature/error-page.id.md @@ -0,0 +1,33 @@ ++++ +title = "Error Page" +description = "Berikan para pengunjung sebuah alasan agar tidak meninggalkan halaman ketika terjadi error." +categories = ["experience"] +tags = ["engagement", "retention", "branding"] +feature = ["error page", "snippets", "code highlighter", "related content", "index blocking"] ++++ + +After Dark termasuk animasi {{< external rel="nofollow help" href="/404.html" text="404 Page" />}} yang dapat anda tampilkan ketika halaman lain tidak dapat ditemukan. Halaman yang error berisi latar belakang animasi dengan layar penuh dan "404" link dengan perawatan Ginsu. Mengikuti tautan untuk menavigasi ke beranda. + +{{< hackcss-card header="Interactive Example" >}} + +{{< /hackcss-card >}} + + + +Sesuaikan itu dari `404.html` di situs `content` direktori: + +``` +├── archetypes +├── content +│ ├── post +│   └── 404.html +├── layouts +``` + +Jika file belum ada, salinlah dari tema standart: + +```sh +$ cp themes/after-dark/content/404.html content +``` + +Konfigurasikan server web anda untuk mengarahkan ulang ke `404.html` ketika halaman tidak dapat ditemukan untuk menggunakannya. Gabungkan dengan [Voyeur Module](/module/voyeur) untuk membantu membuat {{< external href="https://gohugo.io/content-management/urls/#aliases" text="Page Aliases" />}}. diff --git a/themes/after-dark/docs/content/feature/error-page.md b/themes/after-dark/docs/content/feature/error-page.md new file mode 100644 index 0000000..87d127b --- /dev/null +++ b/themes/after-dark/docs/content/feature/error-page.md @@ -0,0 +1,33 @@ ++++ +title = "Error Page" +description = "Give visitors a reason to stay when errors occur." +categories = ["experience"] +tags = ["engagement", "retention", "branding"] +features = ["error page", "snippets", "code highlighter", "related content", "index blocking"] ++++ + +After Dark includes an animated {{< external rel="nofollow help" href="/404.html" text="404 Page" />}} you can display when other pages cannot be found. The error page contains a full-screen background animation and "404" link with Ginsu treatment. Following the link navigates to the homepage. + +{{< hackcss-card header="Interactive Example" >}} + +{{< /hackcss-card >}} + + + +Adjust it from `404.html` in the site `content` directory: + +``` +├── archetypes +├── content +│ ├── post +│   └── 404.html +├── layouts +``` + +If the file doesn't exist yet, copy it from the theme default: + +```sh +$ cp themes/after-dark/content/404.html content +``` + +Configure your web server to redirect to `404.html` when pages cannot be found to use it. Combine with [Voyeur Module](/module/voyeur) for help creating {{< external href="https://gohugo.io/content-management/urls/#aliases" text="Page Aliases" />}}. diff --git a/themes/after-dark/docs/content/feature/fetch-injection.id.md b/themes/after-dark/docs/content/feature/fetch-injection.id.md new file mode 100644 index 0000000..b89dd6e --- /dev/null +++ b/themes/after-dark/docs/content/feature/fetch-injection.id.md @@ -0,0 +1,68 @@ ++++ +title = "Fetch Injection" +description = "Memuat skrip dan gaya eksternal dengan kecepatan luar biasa." +categories = ["experience"] +tags = ["performance", "styles"] +feature = ["snippets", "related content", "code highlighter"] ++++ + +After Dark menggunakan {{< external rel="external help" href="https://git.habd.as/jhabdas/fetch-inject" text="Fetch Inject" />}} pustaka untuk memuat dan menjalankan skrip dan gaya ekesternal lebih cepat dari yang dapat dilakukan browser. + +{{< external href="https://hackcabin.com/post/managing-async-dependencies-javascript/" text="Fetch Injection" />}} terkonsep dan dikembangkan untuk After Dark agar memungkinkan tautan dalam ke ukuran penuh [Galeri Gambar](/module/hall-of-mirrors) gambar tanpa memblokir pemuatan halaman dan memilki kinerja aplikasi lainnya: + + + + + + + + + + + + + + + + + +
    Use CaseChrome Performance Comparison (4G simulated connection speed)
    Without Fetch InjectWith Fetch Inject
    {{< external href="https://habd.as/talks/screaming-fast-wordpress-redis-vultr/" text="WordPress Twenty Seventeen" />}}~3.600s~0.918s
    + +Gunakan Fetch Inject di [Custom Layouts](../custom-layouts) untuk memuat skrip dan gaya asal usul silang atau dari direktori statis situs anda. + +Berikan isi folder statis berikut: + +``` +├── layouts +├── static +│ ├── js +│ │ ├── jquery.slim.min.js +│ │ ├── tether.min.js +│ │ └── bootstrap.min.js +│ └── css +│ └── font-awesome.min.css +└── themes +``` + +Anda dapat memuat Bootstrap (w/Font Awesome) dan menunjukkan berapa lama itu selesai: + +{{< highlight html "linenos=inline" >}} + +{{< /highlight >}} + +Fetch Inject adalah 555 bytes terkompresi, non-blocking dan disertakan secara default pada [Custom Layouts](../custom-layouts). Kunjungi {{< external href="https://codepen.io/jhabdas/pen/MpVeOE?editors=0012" text="CodePen Playground" />}} untuk mencobanya. diff --git a/themes/after-dark/docs/content/feature/fetch-injection.md b/themes/after-dark/docs/content/feature/fetch-injection.md new file mode 100644 index 0000000..36207c5 --- /dev/null +++ b/themes/after-dark/docs/content/feature/fetch-injection.md @@ -0,0 +1,68 @@ ++++ +title = "Fetch Injection" +description = "Load external scripts and styles with incredible speed." +categories = ["experience"] +tags = ["performance", "styles"] +features = ["snippets", "related content", "code highlighter"] ++++ + +After Dark uses the {{< external rel="external help" href="https://git.habd.as/jhabdas/fetch-inject" text="Fetch Inject" />}} library to load and execute external scripts and styles faster than browsers are capable of otherwise. + +{{< external href="https://hackcabin.com/post/managing-async-dependencies-javascript/" text="Fetch Injection" />}} was conceptualized and developed for After Dark to make it possible to deep-link to full-sized [Image Gallery](/module/hall-of-mirrors) images without blocking page load and has other performance applications: + + + + + + + + + + + + + + + + + +
    Use CaseChrome Performance Comparison (4G simulated connection speed)
    Without Fetch InjectWith Fetch Inject
    {{< external href="https://habd.as/talks/screaming-fast-wordpress-redis-vultr/" text="WordPress Twenty Seventeen" />}}~3.600s~0.918s
    + +Use Fetch Inject in your [Custom Layouts](../custom-layouts) to load scripts and styles cross-origin or from your site `static` directory. + +Given the following `static` folder contents: + +``` +├── layouts +├── static +│ ├── js +│ │ ├── jquery.slim.min.js +│ │ ├── tether.min.js +│ │ └── bootstrap.min.js +│ └── css +│ └── font-awesome.min.css +└── themes +``` + +You can load Bootstrap (w/Font Awesome) and show how long ago it finished: + +{{< highlight html "linenos=inline" >}} + +{{< /highlight >}} + +Fetch Inject is 555 bytes compressed, non-blocking and included by default in [Custom Layouts](../custom-layouts). Visit the {{< external href="https://codepen.io/jhabdas/pen/MpVeOE?editors=0012" text="CodePen Playground" />}} to try it out. diff --git a/themes/after-dark/docs/content/feature/fuzzy-search.id.md b/themes/after-dark/docs/content/feature/fuzzy-search.id.md new file mode 100644 index 0000000..305de56 --- /dev/null +++ b/themes/after-dark/docs/content/feature/fuzzy-search.id.md @@ -0,0 +1,44 @@ ++++ +title = "Fuzzy Search" +description = "Secara cepat menemukan konten yang telah di indeks dimanapun pada situs anda." +categories = ["navigation"] +tags = ["links", "search", "controls"] +feature = ["code highlighter", "snippets", "related content"] +todo = ["link to page layout"] ++++ + +Jika mesin pencari dapat menemukannya, anda pun juga bisa. Temukan lokasi konten yang dapat diindeks dengan cepat menggunakan fuzzy search. Tidak memerlukan pendaftaran. + +{{< hackcss-card header="Interactive Example" >}} + +{{< /hackcss-card >}} + +Sesuaikan dari `_index.md` di situs `content/search` direktori: + +``` +├── archetypes +├── content +│ └── search +│ └── _index.md +├── static +├── themes +``` + +Jika file belum ada, buatlah: + +```sh +$ hugo new search/_index.md +``` + +Dan tentukan`JSON` {{< external href="https://gohugo.io/templates/output-formats" text="Output Format" />}} di dalam situs konfigurasi: + +```toml +[outputs] + home = ["HTML", "RSS", "JSON"] +``` + +{{% hackcss-alert type="info" %}}**Note:** ini menambahkan `JSON` sambil menyimpan `HTML` dan `RSS` secara standart.{{% /hackcss-alert %}} + +Setelah diaktifkan, situs anda akan mulai menghasilkan file `index.json` selama pembuatan, memberikan fuzzy search data yang dibutuhkan untuk membantu anda menemukan halaman. + +Cobalah dengan menavigasi [domain.example/search](/search), memasukkan permintaan pencarian dan dengan menggunakan Tab untuk menavigasi diantara hasil pencarian. diff --git a/themes/after-dark/docs/content/feature/fuzzy-search.md b/themes/after-dark/docs/content/feature/fuzzy-search.md new file mode 100644 index 0000000..8ca3687 --- /dev/null +++ b/themes/after-dark/docs/content/feature/fuzzy-search.md @@ -0,0 +1,44 @@ ++++ +title = "Fuzzy Search" +description = "Quickly locate indexed content anywhere on the site." +categories = ["navigation"] +tags = ["links", "search", "controls"] +features = ["code highlighter", "snippets", "related content"] +todo = ["link to page layout"] ++++ + +If a search engine can find it, so can you. Quickly locate indexable content site-wide with fuzzy search. No registration necessary. + +{{< hackcss-card header="Interactive Example" >}} + +{{< /hackcss-card >}} + +Adjust it from `_index.md` in the site `content/search` directory: + +``` +├── archetypes +├── content +│ └── search +│ └── _index.md +├── static +├── themes +``` + +If the file doesn't exist, yet create it: + +```sh +$ hugo new search/_index.md +``` + +And specify the `JSON` {{< external href="https://gohugo.io/templates/output-formats" text="Output Format" />}} in site config: + +```toml +[outputs] + home = ["HTML", "RSS", "JSON"] +``` + +{{% hackcss-alert type="info" %}}**Note:** This adds `JSON` while keeping the `HTML` and `RSS` defaults.{{% /hackcss-alert %}} + +Once activated your site will begin outputting an `index.json` file during generation, giving fuzzy search the data it needs to help you locate pages. + +Try it now by navigating to [domain.example/search](/search/), or, if enabled, `Search` in the [Section Menu](../section-menu/), entering a query and navigating between results using Tab. diff --git a/themes/after-dark/docs/content/feature/index-blocking.id.md b/themes/after-dark/docs/content/feature/index-blocking.id.md new file mode 100644 index 0000000..0b702af --- /dev/null +++ b/themes/after-dark/docs/content/feature/index-blocking.id.md @@ -0,0 +1,52 @@ ++++ +title = "Index Blocking" +description = "Menentukan halaman untuk mencegahnya muncul dalam pencarian." +categories = ["search"] +tags = ["links", "search", "robots", "metadata"] +feature = ["code highlighter", "related content", "snippets"] ++++ + +After Dark menggunakan `noindex` robots meta arahan untuk mencegah mesin pencari merayap dan mengindeks bagian-bagian tertentu dari situs anda. Itu muncul di dokumen HTML `head` dan terlihat seperti berikut ini: + +```html + +``` + +Tidak seperti {{< external href="http://www.robotstxt.org" text="robots.txt" />}} meta arahan diterangkan dalam konten halaman itu sendiri dan dengan jelas menunjuk yang mana, jika ada, halaman harus diblokir dari pengindeksan bahkan jika beberapa halaman tersebut muncul di situs anda {{< external href="https://gohugo.io/templates/sitemap-template/" text="Sitemap" />}}. + +Untuk memfasilitasi penemuan halaman indeks yang diblokir [Fuzzy Search](../fuzzy-search) menggunakan meta arahan yang sama yang terbuka ke mesin pencari untuk mencegah penyingkapan halaman dalam daftar hasil itu sendiri. Oleh karena itu jika sebuah halaman dapat ditemukan di fuzzy search, pada akhirnya halaman itu dapat muncul pada halaman hasil mesin pencari. + +Sesuaikan pemblokiran indeks per-halaman menggunakan `noindex` {{< external href="https://gohugo.io/content-management/front-matter/" text="Front Matter" />}}: + +```toml +noindex = true # set false atau hapus untuk mmebuka blokir +``` + +Blok semua bagian menggunakan file`_index.md` dengan pengaturan seperti diatas: + +``` +├── content +│ ├── legal +│ │ ├── _index.md +│ │ ├── terms.md +│ │ └── privacy.md +│ ├── post +``` + +Secara standart jenis halaman seperti berikut diblokir secara otomatis: + +- Daftar bagian secara otomatis ditautkan dari [Menu Bagian](../section-menu); +- [Halaman Taksonomi](../taxonomy-pages) seperti `Category`, `Tag` dan daftar istilah; dan, +- Jika diaktifkan, halaman [Fuzzy Search](../fuzzy-search) atau beberapa hasil yang terkait erat di dalam. + +Sesuaikan defaults menggunakan pengaturan `noindex_kinds` dari {{< external href="https://gohugo.io/getting-started/configuration/" text="Site Configuration" />}}. Sebagai contoh, untuk mengaktifkan perayapan dari bagian halaman tambahkan hal berikut ini ke konfigurasi : + +```toml +[params] + noindex_kinds = [ + "taxonomy", + "taxonomyTerm" + ] # crawl "section" pages +``` + +Pelajari tentang {{< external href="https://moz.com/learn/seo/robots-meta-directives" text="Robots Meta Directives on Moz" />}} dan lihatlah bagaimana Google menggunakan `noindex` di {{< external href="https://support.google.com/webmasters/answer/93710" text="Block search indexing with 'noindex'" />}}. diff --git a/themes/after-dark/docs/content/feature/index-blocking.md b/themes/after-dark/docs/content/feature/index-blocking.md new file mode 100644 index 0000000..7a07d57 --- /dev/null +++ b/themes/after-dark/docs/content/feature/index-blocking.md @@ -0,0 +1,52 @@ ++++ +title = "Index Blocking" +description = "Define pages to prevent them from appearing in search." +categories = ["search"] +tags = ["links", "search", "robots", "metadata"] +features = ["code highlighter", "related content", "snippets"] ++++ + +After Dark uses the `noindex` robots meta directive to prevent search engines from crawling and indexing certain parts of your site. It appears in the HTML document `head` and looks like this: + +```html + +``` + +Unlike {{< external href="http://www.robotstxt.org" text="robots.txt" />}} meta directives are defined within page content itself and unambiguously indicate which, if any, pages should be blocked from indexing — even if some of those pages appear in your site's {{< external href="https://gohugo.io/templates/sitemap-template/" text="Sitemap" />}}. + +To facilitate the discovery of index blocked pages [Fuzzy Search](../fuzzy-search) utilizes the very same meta directive exposed to search engines to prevent disclosure of pages in its own result listings. Therefore, if a page can be found in fuzzy search, that page may ultimately appear on a search engine result page. + +Adjust index blocking per-page using `noindex` {{< external href="https://gohugo.io/content-management/front-matter/" text="Front Matter" />}}: + +```toml +noindex = true # set false or remove to unblock +``` + +Block entire sections using an `_index.md` file with the above setting: + +``` +├── content +│ ├── legal +│ │ ├── _index.md +│ │ ├── terms.md +│ │ └── privacy.md +│ ├── post +``` + +By default the following page types are blocked automatically: + +- Section listings automatically linked to from the [Section Menu](../section-menu); +- [Taxonomy Pages](../taxonomy-pages) such as `Category`, `Tag` and terms listings; and, +- If enabled, the [Fuzzy Search](../fuzzy-search) page or any deep-linked result within. + +Adjust defaults using the `noindex_kinds` setting from {{< external href="https://gohugo.io/getting-started/configuration/" text="Site Configuration" />}}. For example, to enable crawling of section pages add the following to the config: + +```toml +[params] + noindex_kinds = [ + "taxonomy", + "taxonomyTerm" + ] # crawl "section" pages +``` + +Learn about {{< external href="https://moz.com/learn/seo/robots-meta-directives" text="Robots Meta Directives on Moz" />}} and see how Google uses `noindex` in {{< external href="https://support.google.com/webmasters/answer/93710" text="Block search indexing with 'noindex'" />}}. diff --git a/themes/after-dark/docs/content/feature/jit-requests.id.md b/themes/after-dark/docs/content/feature/jit-requests.id.md new file mode 100644 index 0000000..f9b69b5 --- /dev/null +++ b/themes/after-dark/docs/content/feature/jit-requests.id.md @@ -0,0 +1,27 @@ ++++ +title = "JIT Requests" +description = "Memaksimalkan sumber daya sambil meminimalkan permintaan eksternal." +categories = ["experience"] +tags = ["performance", "styles", "javascript"] +feature = ["related content", "snippets", "code highlighter"] ++++ + +After Dark membuat permintaan JIT untuk beberapa aset eksternal untuk mengurangi konsumsi sumber daya dan meningkatkan kinerja halaman. + +Ambil [Code Highlighter](../code-highlighter) stylesheet sebagai contoh: + +{{< highlight css >}} +{{< include "themes/after-dark/static/css/syntax.css" >}} +{{< /highlight >}} + +Kode stylesheet yang ditunjukkan diatas itu sendiri disorot menggunakan permintaan JIT. Konfirmasikan dengan melihat permintaan jaringan untuk halaman ini dan amati permintaan`fetch` untuk file `syntax.css` seperti yang digambarkan sebagai berikut: + +```sh +jit-requests (document) +├── lazysizes.min.js (fetch) +├── syntax.css (fetch) +``` + +Menggunakan [Fetch Injection](../fetch-injection) permintaan JIT dikeluarkan untuk mulai mengunduh sorotan stylesheet dengan cepat secara pararel dengan sumber daya lain, dan tata letak dasar berhati-hati untuk memastikan CSS hanya diminta pada halaman yang membutuhkan itu. + +Buatlah permintaan JIT anda sendiri menggunakan [Custom Layout](../custom-layouts) dan [Fetch Injection](../fetch-injection). diff --git a/themes/after-dark/docs/content/feature/jit-requests.md b/themes/after-dark/docs/content/feature/jit-requests.md new file mode 100644 index 0000000..5d82d16 --- /dev/null +++ b/themes/after-dark/docs/content/feature/jit-requests.md @@ -0,0 +1,27 @@ ++++ +title = "JIT Requests" +description = "Maximize resources while minimizing external requests." +categories = ["experience"] +tags = ["performance", "styles", "javascript"] +features = ["related content", "snippets", "code highlighter"] ++++ + +After Dark makes JIT requests for some external assets to cut down on resource consumption and increase page performance. + +Take the [Code Highlighter](../code-highlighter) stylesheet for example: + +{{< highlight css >}} +{{< include "themes/after-dark/static/css/syntax.css" >}} +{{< /highlight >}} + +The stylesheet code shown above is itself highlighted using a JIT request. Confirm by viewing the network requests for this page and observe the `fetch` request for the `syntax.css` file as depicted here: + +```sh +jit-requests (document) +├── lazysizes.min.js (fetch) +├── syntax.css (fetch) +``` + +Using [Fetch Injection](../fetch-injection) a JIT request is issued to begin downloading the highlighter stylesheet on-the-fly in parallel with other resources and the base layout takes care to ensure the CSS is only requested on pages that need it. + +Create your own JIT requests using [Custom Layout](../custom-layouts) and [Fetch Injection](../fetch-injection). diff --git a/themes/after-dark/docs/content/feature/keywords-meta.id.md b/themes/after-dark/docs/content/feature/keywords-meta.id.md new file mode 100644 index 0000000..f29b588 --- /dev/null +++ b/themes/after-dark/docs/content/feature/keywords-meta.id.md @@ -0,0 +1,22 @@ ++++ +title = "Keywords Meta" +description = "Tambahkan detail semantik tentang isi materi pelajaran." +categories = ["search"] +tags = ["metadata", "robots", "SEO"] +feature = ["code highlighter", "related content"] ++++ + +Kata kunci menawarkan penjelasan kepada robot mengenai masalah pada konten anda. After Dark menghasilkan kata kunci secara otomatis untuk halaman yang diberikan tag taksonomi untuk halaman itu, dan untuk halaman lain menggunakan taksonomi kategori situs. + +Sesuaikan frase kunci dari {{< external href="https://gohugo.io/content-management/front-matter/" text="Front Matter" />}} menggunakan `keywords` array seperti: + +```toml +keywords = [ + "web development", + "digital marketing", + "social media", + "link building" +] +``` + +Meskipun dianggap tidak relevan untuk mencari peringkat, kata kunci dapat menjadi cara yang berguna untuk mendokumentasikan istilah pencarian target dan memberikan makna lebih semantik ke halaman pencarian anda. diff --git a/themes/after-dark/docs/content/feature/keywords-meta.md b/themes/after-dark/docs/content/feature/keywords-meta.md new file mode 100644 index 0000000..719f2f5 --- /dev/null +++ b/themes/after-dark/docs/content/feature/keywords-meta.md @@ -0,0 +1,22 @@ ++++ +title = "Keywords Meta" +description = "Add semantic detail regarding content subject matter." +categories = ["search"] +tags = ["metadata", "robots", "SEO"] +features = ["code highlighter", "related content"] ++++ + +Keywords offer detail to robots regarding the subject matter of your content. After Dark generates keywords automatically for pages given the tags taxonomy for that page, and for other pages using the site's categories taxonomy. + +Adjust key phrases from {{< external href="https://gohugo.io/content-management/front-matter/" text="Front Matter" />}} using a `keywords` array like so: + +```toml +keywords = [ + "web development", + "digital marketing", + "social media", + "link building" +] +``` + +While not considered relevant to search rankings, keywords can be a useful way to document target search terms and give more semantic meaning to your pages. diff --git a/themes/after-dark/docs/content/feature/last-modified.id.md b/themes/after-dark/docs/content/feature/last-modified.id.md new file mode 100644 index 0000000..de10e13 --- /dev/null +++ b/themes/after-dark/docs/content/feature/last-modified.id.md @@ -0,0 +1,31 @@ ++++ +title = "Last Modified" +description = "Membantu pengunjung memahami kapan postingan terakhir diubah." +categories = ["experience"] +tags = ["publishing", "expired", "future", "posts", "date", "time"] +feature = ["code highlighter", "snippets", "related content"] ++++ + +Menunjukkan postingan dengan perubahan substantif atau cukup dengan gambar sebelumnya, postingan yang lebih relevan semakin dekat ke bagian atas daftar postingan yang terakhir dimodifikasi. + +Modifikasi akan dibuat jelas bagi pengunjung dengan info yang terlihat di rangkuman postingan dan tanggal publikasi asli akan tetap utuh di dalam postingan bylines . + +Untuk robot, melakukan perubahan ini akan secara otomatis memperbarui Skema Data Terstruktur, umpan RSS dan pengaturan`lastmod` {{< external href="https://gohugo.io/templates/sitemap-template/" text="Sitemap" />}} anda. + +Sesuaikan yang terakhir diubah dengan menambahkan `publishdate` ke postingan {{< external href="https://gohugo.io/content-management/front-matter/" text="Front Matter" />}} dan memperbarui `date` ke tanggal dan waktu yang ingin anda tampilkan untuk modifikasi. + +Anda bisa spesifik dan menggunakan tanggal dan waktu (dengan mengimbangi zona waktu) seperti: + +```toml +date = "2017-02-02T01:20:56-06:00" +publishdate = "2016-11-21T10:32:33+08:00" +``` + +Atau kurang spesifik dan hanya menggunakan tanggal: + +```toml +date = "2017-02-02" +publishdate = "2016-11-21" +``` + +Juga memungkinkan untuk tanggal yang akan datang dan yang sudah berlalu untuk konten di Hugo. Untuk mempelajari lebih lanjut,lihat dokumentasi di {{< external href="https://gohugo.io/getting-started/usage/#draft-future-and-expired-content" text="Draft, Future, and Expired Content" />}}. diff --git a/themes/after-dark/docs/content/feature/last-modified.md b/themes/after-dark/docs/content/feature/last-modified.md new file mode 100644 index 0000000..422729a --- /dev/null +++ b/themes/after-dark/docs/content/feature/last-modified.md @@ -0,0 +1,31 @@ ++++ +title = "Last Modified" +description = "Help visitors understand when posts were last modified." +categories = ["experience"] +tags = ["publishing", "expired", "future", "posts", "date", "time"] +features = ["code highlighter", "snippets", "related content"] ++++ + +Denote posts with substantive changes or simply draw older, more relevant posts closer to the top of the listings with last modified. + +Modifications will be made obvious to visitors with a visible callout in post summaries and the original publish date will be kept intact in the post bylines. + +For robots, making this change will automatically update Schema Structured Data, RSS feeds and the `lastmod` setting in your {{< external href="https://gohugo.io/templates/sitemap-template/" text="Sitemap" />}}. + +Adjust last modified by adding a `publishdate` to post {{< external href="https://gohugo.io/content-management/front-matter/" text="Front Matter" />}} and updating the `date` to the date and time you would like to show for the modification. + +You can be specific and use a datetime (with timezone offset) like: + +```toml +date = "2017-02-02T01:20:56-06:00" +publishdate = "2016-11-21T10:32:33+08:00" +``` + +Or less specific and use just the dates: + +```toml +date = "2017-02-02" +publishdate = "2016-11-21" +``` + +It's also possible to future and expiry dates for content in Hugo. To learn more see the documentation on {{< external href="https://gohugo.io/getting-started/usage/#draft-future-and-expired-content" text="Draft, Future, and Expired Content" />}}. diff --git a/themes/after-dark/docs/content/feature/lazy-loading.id.md b/themes/after-dark/docs/content/feature/lazy-loading.id.md new file mode 100644 index 0000000..7010df0 --- /dev/null +++ b/themes/after-dark/docs/content/feature/lazy-loading.id.md @@ -0,0 +1,46 @@ ++++ +title = "Lazy Loading" +description = "Tunda pemuatan gambar, iframe dan skrip." +categories = ["experience"] +tags = ["performance", "images", "graphics"] +feature = ["code highlighter", "related content", "snippets"] ++++ + +After Dark menggunakan {{< external href="https://github.com/aFarkas/lazysizes" text="lazySizes" />}} untuk memprioritaskan pemuatan sumber daya eksternal tertentu untuk meningkatkan waktu pemuatan halaman dan membantu mengurangi konsumsi bandwith secara keseluruhan. + +Lazy loading bekerja secara otomatis untuk [Post Images](../post-images) dan ketika menggunakan [Figure Shortcode](/shortcode/figure), atau terkait dengan [Snippet](../snippets), seperti yang terlihat sebagai berikut: + +{{< figure + src="https://source.unsplash.com/Y-w15LfHO8w/5184x3456" + lqipsrc="https://source.unsplash.com/Y-w15LfHO8w/1080x720" + caption="Be Creative" + attr="AK¥N Cakiner" + attrlink="https://unsplash.com/@akin" +>}} + +Untuk menggunakan lazy loading di [Custom Layouts](../custom-layouts) atau saat membuat milik anda sendiri [Shortcodes](/shortcode) menambahkan atribut kelas `lazyload` dan `data` yang relevan seperti yang ditunjukkan di sini: + +```html + + +``` + +```html + + +``` + +```html + + +``` + +Lihat {{< external href="https://github.com/aFarkas/lazysizes" text="lazySizes" />}} sebagai informasi dan contoh tambahan. diff --git a/themes/after-dark/docs/content/feature/lazy-loading.md b/themes/after-dark/docs/content/feature/lazy-loading.md new file mode 100644 index 0000000..4a581a4 --- /dev/null +++ b/themes/after-dark/docs/content/feature/lazy-loading.md @@ -0,0 +1,46 @@ ++++ +title = "Lazy Loading" +description = "Defer loading of images, iframes and scripts." +categories = ["experience"] +tags = ["performance", "images", "graphics"] +features = ["code highlighter", "related content", "snippets"] ++++ + +After Dark uses {{< external href="https://github.com/aFarkas/lazysizes" text="lazySizes" />}} to prioritize loading of certain external resources to improve page load times and help reduce overall bandwidth consumption. + +Lazy loading works automatically for [Post Images](../post-images) and when using the [Figure Shortcode](/shortcode/figure), or related [Snippet](../snippets), as seen here: + +{{< figure + src="https://source.unsplash.com/Y-w15LfHO8w/5184x3456" + lqipsrc="https://source.unsplash.com/Y-w15LfHO8w/1080x720" + caption="Be Creative" + attr="AK¥N Cakiner" + attrlink="https://unsplash.com/@akin" +>}} + +To use lazy loading in [Custom Layouts](../custom-layouts) or when creating your own [Shortcodes](/shortcode) adding the `lazyload` class and relevant `data` attributes as shown here: + +```html + + +``` + +```html + + +``` + +```html + + +``` + +See {{< external href="https://github.com/aFarkas/lazysizes" text="lazySizes" />}} for additional information and examples. diff --git a/themes/after-dark/docs/content/feature/link-typing.id.md b/themes/after-dark/docs/content/feature/link-typing.id.md new file mode 100644 index 0000000..3c7d65f --- /dev/null +++ b/themes/after-dark/docs/content/feature/link-typing.id.md @@ -0,0 +1,28 @@ ++++ +title = "Link Typing" +description = "Menunjukkan hubungan antar dokumen secara eksplisit." +categories = ["navigation"] +tags = ["links", "accessibility", "taxonomy", "metadata"] +feature = ["code highlighter", "snippets", "related content"] ++++ + +After Dark menggunakan pengetikan tautan untuk menunjukkan hubungan semantik antara dokumen. Secara default tipe tautan `alternate` digunakan untuk menyorot keberadaan umpan web di beranda dan di dalam daftar taksonomi: + +```html + + + +``` + +Sebagai tambahan ke defaults After Dark mengenali jenis tautan `prev` dan `next` jika ditentukan di halaman {{< external href="https://gohugo.io/content-management/front-matter/" text="Front Matter" />}}: + +```toml +prev = "/series/learn-to-code/part-one/" +next = "/series/learn-to-code/part-three/" +``` + +Gunakan jenis tautan `prev` dan `next` untuk artikel tersegmentasi, [Live Blog Postings](https://schema.org/LiveBlogPosting) atau untuk meniru ciri-ciri taksonomi `series` jika tidak ada taksonomi seri. + +Jenis tautan biasanya ditampilkan di bagian atas halaman di browser teks seperti {{< external href="http://elinks.or.cz" text="ELinks" />}} sebagai bentuk navigasi tambahan dan dapat membantu robot dan pengguna lebih memahami hubungan antar konten anda. + +Pelajari lagi tentang {{< external href="http://devdocs.io/html/link_types" text="link types" />}} dan {{< external href="https://gohugo.io/content-management/taxonomies" text="Taxonomies in Hugo" />}}. diff --git a/themes/after-dark/docs/content/feature/link-typing.md b/themes/after-dark/docs/content/feature/link-typing.md new file mode 100644 index 0000000..537f394 --- /dev/null +++ b/themes/after-dark/docs/content/feature/link-typing.md @@ -0,0 +1,28 @@ ++++ +title = "Link Typing" +description = "Explicitly indicate relationships between documents." +categories = ["navigation"] +tags = ["links", "accessibility", "taxonomy", "metadata"] +features = ["code highlighter", "snippets", "related content"] ++++ + +After Dark uses link typing to indicate semantic relationships between documents. By default the `alternate` link type is used to highlight the presence of web feeds on the homepage and in taxonomy listings: + +```html + + + +``` + +In addition to defaults After Dark recognizes the `prev` and `next` link types if specified in page {{< external href="https://gohugo.io/content-management/front-matter/" text="Front Matter" />}}: + +```toml +prev = "/series/learn-to-code/part-one/" +next = "/series/learn-to-code/part-three/" +``` + +Use `prev` and `next` link types for segmented articles, [Live Blog Postings](https://schema.org/LiveBlogPosting) or to mimic the traits of a `series` taxonomy if no series taxonomy is present. + +Link Types are commonly shown at the top of the page in text browsers such as {{< external href="http://elinks.or.cz" text="ELinks" />}} as an auxiliary form of navigation and can help robots and users better understand relationships between your content. + +Learn more about {{< external href="http://devdocs.io/html/link_types" text="link types" />}} and {{< external href="https://gohugo.io/content-management/taxonomies" text="Taxonomies in Hugo" />}}. diff --git a/themes/after-dark/docs/content/feature/module-system.id.md b/themes/after-dark/docs/content/feature/module-system.id.md new file mode 100644 index 0000000..1b44f0d --- /dev/null +++ b/themes/after-dark/docs/content/feature/module-system.id.md @@ -0,0 +1,11 @@ ++++ +title = "Module System" +description = "Meningkatkan fungsionalitas dengan modul pre built add on." +categories = ["core"] +tags = ["module", "imaging", "graphics", "analytics", "installation"] +feature = ["module system", "related content"] ++++ + +After Dark menggunakan {{< external href="https://gohugo.io/themes/theme-components/" text="Hugo Theme Components" />}} untuk menghasilkan sistem untuk menyertakan sejumlah prebuilt add-on [Modules](/module/) yang menyediakan fungsionalitas tambahan. + +Lihat [Modules](/module/) ringkasan modul yang tersedia. diff --git a/themes/after-dark/docs/content/feature/module-system.md b/themes/after-dark/docs/content/feature/module-system.md new file mode 100644 index 0000000..160e036 --- /dev/null +++ b/themes/after-dark/docs/content/feature/module-system.md @@ -0,0 +1,11 @@ ++++ +title = "Module System" +description = "Enhance site functionality with add-on modules." +categories = ["core"] +tags = ["module", "imaging", "graphics", "analytics", "installation"] +features = ["module system", "related content"] ++++ + +After Dark uses {{< external href="https://gohugo.io/themes/theme-components/" text="Theme Components" />}} and [Fetch Injection](../fetch-injection/) to provide a plug-in system for enhancing site functionality using optional add-on modules. + +View the list of [available modules](/module/). diff --git a/themes/after-dark/docs/content/feature/online-help.id.md b/themes/after-dark/docs/content/feature/online-help.id.md new file mode 100644 index 0000000..cd06318 --- /dev/null +++ b/themes/after-dark/docs/content/feature/online-help.id.md @@ -0,0 +1,33 @@ ++++ +title = "Online Help" +description = "Panduan bantuan self-hosted lengkap dan contoh website." +categories = ["core"] +tags = ["scripts", "security", "networking"] +feature = ["related content", "code highlighter", "snippets"] ++++ + +After Dark termasuk bantuan online manual yang luas dan contoh website. + +Melihat bantuan Dokumen lokal dengan menavigasi ke http://localhost:1414 mengikuti [Quick Install](../quick-install) atau setelah menjalankan [Upgrade Script](../upgrade-script). Tidak memerlukan koneksi internet. + +Jika bantuan tidak berjalan, anda dapat memulainya kapan saja melalui skrip: + +{{< hackcss-alert >}} +{{< highlight sh >}} +cd flying-toasters && \ +./themes/after-dark/bin/help +{{< /highlight >}} +{{< /hackcss-alert >}} + +Atau cukup membuat alias dan sajikan dokumen dengan live-reload: + +{{< hackcss-alert >}} +{{< highlight sh >}} +alias hs='hugo serve --navigateToChanged' && \ +hs --port 1414 --source themes/after-dark/docs +{{< /highlight >}} +{{< /hackcss-alert >}} + +Bantuan termasuk dalam kode sumber After Dark. Jadi setiap rilis baru akan menyertakan dokumen bantuan terbaru, khusus untuk versi tertentu. + +Upgradelah untuk mendapatkan update terbaru menggunakan [Upgrade Script](../upgrade-script/). diff --git a/themes/after-dark/docs/content/feature/online-help.md b/themes/after-dark/docs/content/feature/online-help.md new file mode 100644 index 0000000..52b8d4d --- /dev/null +++ b/themes/after-dark/docs/content/feature/online-help.md @@ -0,0 +1,33 @@ ++++ +title = "Online Help" +description = "Complete self-hosted help guide and example website." +categories = ["core"] +tags = ["scripts", "security", "networking"] +features = ["related content", "code highlighter", "snippets"] ++++ + +After Dark includes an extensive online help manual and example website. + +View help docs locally by navigating to http://localhost:1414 following a [Quick Install](../quick-install) or after running the [Upgrade Script](../upgrade-script). Internet connection not required. + +If help is not running you may start it anytime via script: + +{{< hackcss-alert >}} +{{< highlight sh >}} +cd flying-toasters && \ +./themes/after-dark/bin/help +{{< /highlight >}} +{{< /hackcss-alert >}} + +Or simply create an alias and serve docs with live-reload: + +{{< hackcss-alert >}} +{{< highlight sh >}} +alias hs='hugo serve --navigateToChanged' && \ +hs --port 1414 --source themes/after-dark/docs +{{< /highlight >}} +{{< /hackcss-alert >}} + +Help is included within the After Dark source code. So each new release will include the latest help docs, specific to that particular version. + +Upgrade to get the latest updates using the [Upgrade Script](../upgrade-script/). diff --git a/themes/after-dark/docs/content/feature/post-bylines.id.md b/themes/after-dark/docs/content/feature/post-bylines.id.md new file mode 100644 index 0000000..320fd9b --- /dev/null +++ b/themes/after-dark/docs/content/feature/post-bylines.id.md @@ -0,0 +1,33 @@ ++++ +title = "Post Bylines" +description = "Membuat byline yang dapat dibaca manusia dan mesin di postingan." +categories = ["experience"] +tags = ["author", "posts", "taxonomy", "publishing"] +feature = ["related content", "code highlighter"] +notes = [ + "perbarui contoh postingan byline'taxonomy pages'jika dimodifikasi" +] ++++ + +After Dark mwmbuat postingan byline yang sangat banyak secara otomatis. Bylines termasuk pilihan nama penuis, jumlah kata, tautan ke [Halaman Taksonomi](../taxonomy-pages) dan [Structured Data](../structured-data). + +{{% hackcss-card header="Example Byline" %}} +Diterbitkan [by `author`] [`publishdate` or `date`] di [navigation](/categories/navigation) dan ditandai [links](/tags/links) dan [taxonomy](/tags/taxonomy) menggunakan [`wordcount`] kata-kata. +{{% /hackcss-card %}} + +Jika `author` ditentukan di {{< external href="https://gohugo.io/getting-started/configuration/" text="Site Configuration" />}} params atau posting {{< external href="https://gohugo.io/content-management/front-matter/" text="Front Matter" />}} itu akan dimasukkan secara otomatis dalam byline yang menghubungkan penulis: + +```toml +[params] + author = "Billy Joe Jim Bob" # the guy behind the guy behind the guy +``` + +Sesuaikan `hide_author` di {{< external href="https://gohugo.io/getting-started/configuration/" text="Site Configuration" />}} untuk menekan atribusi di seluruh situs: + +```toml +[params] + author = "" # optional setting, not required in config + hide_author = true # hides author name and related structured data +``` + +Gabungkan dengan`categories` dan [Last Modified](../last-modified) untuk mengahasilkan [Structured Data](../structured-data) yang unik. diff --git a/themes/after-dark/docs/content/feature/post-bylines.md b/themes/after-dark/docs/content/feature/post-bylines.md new file mode 100644 index 0000000..3ea0d3d --- /dev/null +++ b/themes/after-dark/docs/content/feature/post-bylines.md @@ -0,0 +1,33 @@ ++++ +title = "Post Bylines" +description = "Create human and machine readable bylines in posts." +categories = ["experience"] +tags = ["author", "posts", "taxonomy", "publishing"] +features = ["related content", "code highlighter"] +notes = [ + "update 'taxonomy pages' post byline example if modified" +] ++++ + +After Dark creates rich post bylines automatically. Bylines include optional author name, word count, links to [Taxonomy Pages](../taxonomy-pages) and [Structured Data](../structured-data). + +{{% hackcss-card header="Example Byline" %}} +Published [by `author`] [`publishdate` or `date`] in [navigation](/categories/navigation) and tagged [links](/tags/links) and [taxonomy](/tags/taxonomy) using [`wordcount`] words. +{{% /hackcss-card %}} + +If `author` is specified in {{< external href="https://gohugo.io/getting-started/configuration/" text="Site Configuration" />}} params or post {{< external href="https://gohugo.io/content-management/front-matter/" text="Front Matter" />}} it will be included automatically in the byline attributing the author: + +```toml +[params] + author = "Billy Joe Jim Bob" # the guy behind the guy behind the guy +``` + +Adjust `hide_author` in {{< external href="https://gohugo.io/getting-started/configuration/" text="Site Configuration" />}} to suppress attribution site-wide: + +```toml +[params] + author = "" # optional setting, not required in config + hide_author = true # hides author name and related structured data +``` + +Combine with `categories` and [Last Modified](../last-modified) to produce unique [Structured Data](../structured-data). diff --git a/themes/after-dark/docs/content/feature/post-images.id.md b/themes/after-dark/docs/content/feature/post-images.id.md new file mode 100644 index 0000000..820cd81 --- /dev/null +++ b/themes/after-dark/docs/content/feature/post-images.id.md @@ -0,0 +1,52 @@ ++++ +title = "Post Images" +description = "menambahkan gambar ke postingan tanpa menyentuh editor gambar." +categories = ["experience"] +tags = ["performance", "imaging", "graphics", "posts"] +feature = ["code highlighter", "snippets", "related content"] +todo = [ + "normalisasi dengan kode aktual untuk membuat postingan gambar yang responsif" +] ++++ + +Tambahkan daya tarik visual ke postingan anda dengan memposting gambar. Gambar postingan muncul diatas konten postingan dan pengaruh {{< external href="https://gohugo.io/content-management/image-processing/" text="Hugo Image Processing" />}} dan [Lazy Loading](../lazy-loading) untuk menyediakan gambar yang sepenuhnya otomatis dan lazy-loaded LQIP dan arah seni bawaan. + +{{< figure + src="https://source.unsplash.com/Y-w15LfHO8w/1200x900" + lqipsrc="https://source.unsplash.com/Y-w15LfHO8w/800x600" + caption="Be Creative. Photo:" + attr="AK¥N Cakiner on Unsplash" + attrlink="https://unsplash.com/@akin" +>}} + +Menggunakan gambar postingan memerlukan beberapa pendapat terkait dengan struktur konten anda. Untuk membuat postingan dengan gambar posting anda harus: + +1. Gabungkan gambar dan konten dalam direktori seperti yang ditunjukan di bawah ini. +2. Perbarui postingan {{< external href="https://gohugo.io/content-management/front-matter/" text="Front Matter" />}} seperti yang dijelaskan dibawah ini. + +Contoh bundel halaman mungkin akan terlihat seperti berikut ini: + +``` +├── archetypes +├── content +│ └── post +│ └── secure-your-digital-life +│ ├── images +│ │ └── florian-klauer-119557-unsplash.jpg +│ └── index.md +├── layouts +``` + +Dengan gambar `header` yang ditunjukkan di `index.md`: + +```toml +[[resources]] + src = "images/*119557*" + name = "header" +``` + +{{% hackcss-alert type="info" %}}**Tip:** Orientasi tidak signifikan. Untuk tampilan optimal gunakan gambar yang lebih besar.{{% /hackcss-alert %}} + +Itu dia! After Dark melakukan hal selebihnya. + +Untuk membantu memahami bundel, lihat {{< external href="https://gohugo.io/content-management/page-bundles/" text="Page Bundles in Hugo" />}}. diff --git a/themes/after-dark/docs/content/feature/post-images.md b/themes/after-dark/docs/content/feature/post-images.md new file mode 100644 index 0000000..136dc35 --- /dev/null +++ b/themes/after-dark/docs/content/feature/post-images.md @@ -0,0 +1,86 @@ ++++ +title = "Post Images" +description = "Add large hero images without touching an image editor." +categories = ["experience"] +tags = ["performance", "imaging", "graphics", "posts"] +features = ["code highlighter", "snippets", "related content"] +todo = [ + "normalize with the actual code to create a responsive post image" +] ++++ + +{{< figure + src="/images/watercolor_pTIyYTqAlF8_w1440h700.jpeg" + alt="Map image" + lqipsrc="/images/watercolor_pTIyYTqAlF8_w936h455.jpeg" + caption="Sample image placement. Not the real deal." +>}} + +Add visual appeal to your posts with post images. Post images appear above post content and leverage {{< external href="https://gohugo.io/content-management/image-processing/" text="Hugo Image Processing" />}} and [Lazy Loading](../lazy-loading) to provide fully automatic, lazy-loaded responsive images with LQIP and built-in art direction. + +Using post images requires some opinion with regard to the structure of your content. To create a post with a post image you must: + +1. Group image and content in a {{< external href="https://gohugo.io/content-management/page-bundles/" text="Page Bundle" />}} as shown below. +2. Update post {{< external href="https://gohugo.io/content-management/front-matter/" text="Front Matter" />}} as described below. + +An example page bundle might look like: + +``` +├── archetypes +├── content +│ └── post +│ └── secure-your-digital-life +│ ├── images +│ │ └── florian-klauer-119557-unsplash.jpg +│ └── index.md +├── layouts +``` + +With a `header` image specified in `index.md`: + +```toml +[[resources]] + src = "images/*119557*" + name = "header" +``` + +{{% hackcss-alert type="info" %}}**Tip:** Orientation is not significant. For optimal display use larger images.{{% /hackcss-alert %}} + +Add an image caption showing the image title: + +```toml +[[resources]] + src = "**291607-unsplash.jpg" + name = "header" + title = "Ottawa road in the evening" # adds image caption +``` + +Add [Structured Data]({{< relref "structured-data" >}}) using {{< external "https://gohugo.io/content-management/page-resources/#page-resources-metadata" "Resources Metadata" />}} to improve accessibility: + +```toml +[[resources]] + src = "**291607-unsplash.jpg" + name = "header" + title = "Ottawa road in the evening" + [resources.params.meta] + description = "Light trails depicting speed" # adds alt text and image meta + creator = "Marc-Olivier Jodoin" # updates caption and adds image meta +``` + +Continue adding metadata to improve accessibility: + +```toml +[[resources]] + src = "**291607-unsplash.jpg" + name = "header" + title = "Ottawa road in the evening" + [resources.params.meta] + description = "Light trails depicting speed" + creator = "Marc-Olivier Jodoin" + sameAs = "https://unsplash.com/photos/NqOInJ-ttqM/" # also updates caption + license = "https://unsplash.com/license" # attribution not required + contentLocation = "Ottawa, Canada" + keywords = ["light trail", "building", "speed", "night"] +``` + +Supported metadata in examples above. Adjust display using [Custom Styles]({{< relref "custom-styles" >}}). diff --git a/themes/after-dark/docs/content/feature/quick-install.id.md b/themes/after-dark/docs/content/feature/quick-install.id.md new file mode 100644 index 0000000..249cade --- /dev/null +++ b/themes/after-dark/docs/content/feature/quick-install.id.md @@ -0,0 +1,137 @@ ++++ +title = "Quick Install" +description = "Hanya satu perintah yang anda butuhkan untuk membuat website baru." +categories = ["core"] +tags = ["setup", "installation", "scripts"] +features = ["code highlighter", "snippets", "related content"] +notes = [ + "mengulas 'module-system' saat menambah atau menghapus add-on yang telah di instal", + "juga meninjau pilihan modul yang sudah dipasang sebelumnya (lihat masalah di depan)" +] ++++ + +After Dark termasuk skrip instalasi portabel untuk pengaturan cepat: + +{{< hackcss-card header="themes/after-dark/bin/install" >}} + +
    +Perluas untuk melihat skrip +{{< highlight shell "linenos=inline" >}} +{{< include "themes/after-dark/bin/install" >}} +{{< /highlight >}} + + + + + + +
    +{{< /hackcss-card >}} + +Silahkan instal {{< external href="https://gohugo.io" text="Hugo" />}} `0.44` atau yang lebih besar sebelum menjalankan skrip. + + + +Skrip telah diuji pada Debian, BusyBox dan Darwin, dan seharusnya juga dapat bekerja di bawah Alpine, Ubuntu, Docker dan Windows melalui {{< external href="http://cmder.net" text="Cmder" />}} tanpa ketergantungan tambahan. + +{{% hackcss-alert type="warning" %}}**Warning:** selalu periksa skrip yang diunduh dari internet sebelum menjalankannya secara lokal. Jika anda memilih untuk tidak menjalankan skrip [Unduh secara manual](/#download).{{% /hackcss-alert %}} + +Jalankan skrip sesuka anda. Berikut adalah metode yang memungkinkan: + +1. Unduh dan kirim ke `sh` secara langsung: + + {{< hackcss-alert >}} + {{< highlight shell >}}wget -qO - https://go.habd.as/after-dark | sh{{< /highlight >}} + {{< /hackcss-alert >}} + + (Cojones not included.) + +2. Unduh di file baru, `chmod` dan jalankan: + + {{< hackcss-alert >}} + {{< highlight shell >}}curl -O https://cdn.jsdelivr.net/npm/after-dark@latest/bin/install && \ +chmod +x install && ./install{{< /highlight >}} + {{< /hackcss-alert >}} + + (It's safe if it comes from a CDN, amirite?) + +3. Dari kanonik `git` klon: + + {{< hackcss-alert >}} + {{< highlight shell >}}# sumber klon dan ubah ke direktori sumber git klon https://git.habd.as/comfusion/after-dark.git && cd "$_" + +# gunakan npm cli untuk mendapatkan hash rilis +echo "${$(npm run integrity)#*sha512-}" + +# jalankan instal cepat setelah memvalidasi +./bin/install +{{< /highlight >}} + {{< /hackcss-alert >}} + + (Release Hashes may be used for code validation.) + +Skrip harus selesai dalam 5-10 detik sehingga menghasilkan sampel situs dan dokumen bantuan: + +{{< figure alt="After Dark screenshots" + src="/images/quick-install.png" + lqipsrc="/images/quick-install-fs8.png" + caption="After Dark Quick Install running to completion in Terminal on macOS Mojave." +>}} + +# Konfigurasi multi situs + +After Dark memungkingkan menjalankan manajemen multi situs dari satu instalasi. Untuk mengelola beberapa website gunakan `-c` dan `-d` bendera untuk menentukan konten dan tujuan direktori secara berurutan. + +Misalnya, untuk mengahasilkan situs audio menggunakan instalasi After Dark saat ini, buat skrip yang dapat dieksekusi untuk menghasilkan situs tersebut: + +{{< hackcss-card header="flying-toasters/bin/gen-audio-site" >}} +{{< highlight shell >}}#!/bin/sh +hugo -c sites/audio -d public/static.domain.example{{< /highlight >}} +{{< /hackcss-card >}} + +Dimana `audio` berisi konten untuk situs itu: + +``` +├── layouts +├── sites +│   └── audio +│   ├── audiobooks +│ │ ├── gaining-currency.md +│   │ └── the-power-of-now.md +│   └── clips +│   └── war-of-the-worlds.md +├── static +``` + +Dan `public` berisi folder untuk setiap situs: + +``` +public +└── static.domain.example + ├── categories + │   └── index.xml + ├── audiobooks + │ └── index.html + ├── clips + │   └── index.html + ├── css + ├── index.html + ├── index.xml + ├── js + ├── sitemap.xml + └── tags + └── index.xml +``` + +Dan buat skrip lain untuk menyajikan konten untuk diedit: + +{{< hackcss-card header="flying-toasters/bin/serve-audio-site" >}} +{{< highlight shell >}}#!/bin/sh +hugo -c sites/audio{{< /highlight >}} +{{< /hackcss-card >}} + +Setiap subdirektori `public` kemudian menjadi website yang independen dan dapat disebarkan serta salinan persisnya disimpan untuk konten tujuan yang dihasilkan. + +{{% hackcss-alert type="info" %}}**Tip:** Untuk jenis fleksibiltas tambahan `hugo --help` dan modifikasi skrip anda menggunakan `--theme` dan `--config` flags.{{% /hackcss-alert %}} + +Multi situs sangat cocok untuk mempertahankan tampilan dan rasa yang konsisten di berbagai domain asal sekaligus membatasi kebutuhan untuk menjalankannya [Upgrade Script](/feature/upgrade-script/) untuk setiap situs. diff --git a/themes/after-dark/docs/content/feature/quick-install.md b/themes/after-dark/docs/content/feature/quick-install.md new file mode 100644 index 0000000..7d407d5 --- /dev/null +++ b/themes/after-dark/docs/content/feature/quick-install.md @@ -0,0 +1,141 @@ ++++ +title = "Quick Install" +description = "One command is all you need to start a new website." +categories = ["core"] +tags = ["setup", "installation", "scripts"] +features = ["code highlighter", "snippets", "related content"] +notes = [ + "review 'module-system' when adding or removing installed add-ons", + "also review selection of pre-installed modules (see front matter)" +] +aliases = [ + "/feature/quick-installer/" +] ++++ + +After Dark includes a portable installation script for quick set-up: + +{{< hackcss-card header="themes/after-dark/bin/install" >}} + +
    +Expand to view script +{{< highlight sh "linenos=inline" >}} +{{< include "themes/after-dark/bin/install" >}} +{{< /highlight >}} + + + + + + +
    +{{< /hackcss-card >}} + +Please install {{< external href="https://gohugo.io" text="Hugo" />}} `0.44` or greater before running the script. + + + +Script has been tested on Debian, BusyBox and Darwin, and should also work under Alpine, Ubuntu, Docker and Windows via {{< external href="http://cmder.net" text="Cmder" />}} without additional dependencies. + +{{% hackcss-alert type="warning" %}}**Warning:** Always examine scripts downloaded from the internet before running them locally. If you'd prefer not to run the script [Download Manually](/#download).{{% /hackcss-alert %}} + +Run the script however you like. Here are three possible methods: + +1. Download and pipe to `sh` directly: + + {{< hackcss-alert >}} + {{< highlight shell >}}wget -qO - https://go.habd.as/after-dark | sh{{< /highlight >}} + {{< /hackcss-alert >}} + + (Cojones not included.) + +2. Download into new file, `chmod` and execute: + + {{< hackcss-alert >}} + {{< highlight shell >}}curl -O https://cdn.jsdelivr.net/npm/after-dark@latest/bin/install && \ +chmod +x install && ./install{{< /highlight >}} + {{< /hackcss-alert >}} + + (It's safe if it comes from a CDN, amirite?) + +3. From canonical `git` clone: + + {{< hackcss-alert >}} + {{< highlight shell >}}# clone source and change to source directory +git clone https://git.habd.as/comfusion/after-dark.git && cd "$_" + +# use npm cli to get the release hash +echo "${$(npm run integrity)#*sha512-}" + +# run quick install after validating +./bin/install +{{< /highlight >}} + {{< /hackcss-alert >}} + + (Release Hashes may be used for code validation.) + +Script should complete in 5-10 seconds resulting in a sample site and help docs: + +{{< figure alt="After Dark screenshots" + src="/images/quick-install.png" + lqipsrc="/images/quick-install-fs8.png" + caption="After Dark Quick Install running to completion in Terminal on macOS Mojave." +>}} + +# Multi-site Configuration + +After Dark enables multi-site management from a single installation. To manage multiple websites use the `-c` and `-d` flags to specify the `content` and `destination` directories, respectively + +For example, to generate an audio site using the current After Dark installation create an executable script to generate the site: + +{{< hackcss-card header="flying-toasters/bin/gen-audio-site" >}} +{{< highlight shell >}}#!/bin/sh +hugo -c sites/audio -d public/static.domain.example{{< /highlight >}} +{{< /hackcss-card >}} + +Where `audio` contains the content for that site: + +``` +├── layouts +├── sites +│   └── audio +│   ├── audiobooks +│ │ ├── gaining-currency.md +│   │ └── the-power-of-now.md +│   └── clips +│   └── war-of-the-worlds.md +├── static +``` + +And `public` contains a folder for each site: + +``` +public +└── static.domain.example + ├── categories + │   └── index.xml + ├── audiobooks + │ └── index.html + ├── clips + │   └── index.html + ├── css + ├── index.html + ├── index.xml + ├── js + ├── sitemap.xml + └── tags + └── index.xml +``` + +And create another script to serve the content for editing: + +{{< hackcss-card header="flying-toasters/bin/serve-audio-site" >}} +{{< highlight shell >}}#!/bin/sh +hugo -c sites/audio{{< /highlight >}} +{{< /hackcss-card >}} + +Each subdirectory of `public` then becomes an independent, deployable website and exact copy save for destination content generated. + +{{% hackcss-alert type="info" %}}**Tip:** For additional flexibility type `hugo --help` and modify your scripts using the `--theme` and `--config` flags.{{% /hackcss-alert %}} + +Multi-site is perfect for maintaining a consistent look-and-feel across multiple domain origins while limiting the need to run the [Upgrade Script](/feature/upgrade-script/) for each site. diff --git a/themes/after-dark/docs/content/feature/referrer-policy.id.md b/themes/after-dark/docs/content/feature/referrer-policy.id.md new file mode 100644 index 0000000..16d14f5 --- /dev/null +++ b/themes/after-dark/docs/content/feature/referrer-policy.id.md @@ -0,0 +1,24 @@ ++++ +title = "Referrer Policy" +description = "Menentukan berapa banyak info yang diteruskan ke tautan eksternal." +categories = ["security"] +tags = ["privacy", "security", "SEO", "metadata"] +feature = ["related content", "code highlighter", "snippets"] ++++ + +After Dark menambahkan {{< external href="https://w3c.github.io/webappsec-referrer-policy/" text="Referrer Policy" />}} untuk meningkatkan keamanan situs dan meningkatkan privasi pengunjung di luar browser standar menggunakan kebijakan seluruh situs sederhana. + +Sesuaikan site-wide default`same-origin` dari {{< external href="https://gohugo.io/getting-started/configuration/" text="Site Configuration" />}}: + +```toml +[params.seo] + referrer = "same-origin" +``` + +Melonggarkan kebijakan keamanan dengan: + +- Menyesuaikan standar seluruh situs; +- Menggunakan atribut `referrerpolicy` dari [External Shortcode](/shortcode/external); +- Menggunakan {{< external href="https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-delivery-nested" text="nested browsing context" />}} untuk menyesuaikan secara kontekstual. + +Lihat {{< external href="https://w3c.github.io/webappsec-referrer-policy/" text="Referrer Policy on W3C" />}} untuk daftar nilai yang memungkinkan. diff --git a/themes/after-dark/docs/content/feature/referrer-policy.md b/themes/after-dark/docs/content/feature/referrer-policy.md new file mode 100644 index 0000000..1121f79 --- /dev/null +++ b/themes/after-dark/docs/content/feature/referrer-policy.md @@ -0,0 +1,24 @@ ++++ +title = "Referrer Policy" +description = "Specify how much info is passed to external links." +categories = ["security"] +tags = ["privacy", "security", "SEO", "metadata"] +features = ["related content", "code highlighter", "snippets"] ++++ + +After Dark adds a {{< external href="https://w3c.github.io/webappsec-referrer-policy/" text="Referrer Policy" />}} to improve site security and increase visitor privacy beyond browser defaults using a simple site-wide policy. + +Adjust the site-wide default of `same-origin` from {{< external href="https://gohugo.io/getting-started/configuration/" text="Site Configuration" />}}: + +```toml +[params.seo] + referrer = "same-origin" +``` + +Relax the security policy by: + +- Adjusting the site-wide default; +- Using the `referrerpolicy` attribute of the [External Shortcode](/shortcode/external); +- Using a {{< external href="https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-delivery-nested" text="nested browsing context" />}} to adjust contextually. + +See {{< external href="https://w3c.github.io/webappsec-referrer-policy/" text="Referrer Policy on W3C" />}} for a list of possible values. diff --git a/themes/after-dark/docs/content/feature/related-content.id.md b/themes/after-dark/docs/content/feature/related-content.id.md new file mode 100644 index 0000000..1516245 --- /dev/null +++ b/themes/after-dark/docs/content/feature/related-content.id.md @@ -0,0 +1,24 @@ ++++ +title = "Related Content" +description = "Mempromosikan lebih banyak konten anda kepada pengunjung situs." +categories = ["navigation"] +tags = ["links", "retention", "engagement"] +feature = ["code highlighter", "snippets", "related content"] ++++ + +After Dark menyediakan konten terkait untuk membantu pengguna menemukan lebih banyak informasi yang relevan bagi mereka dan dapat meningkatkan tampilan halaman dan waktu yang dihabiskan untuk situs anda. + +Ketika dua halaman atau lebih atau postingan yang berisi taksonomi`tags` yang sama, mereka akan ditautkan di bagian seperti yang ditunjukkan di bagian bawah halaman. Bagian ini muncul secara otomatis seperti dibawah ini [Post Bylines](../post-bylines) dengan maksimum 7 item default yang ditampilkan. + +{{% hackcss-alert type="info" %}}**Tip:** Buatlah [Custom Layout](/feature/custom-layouts) untuk menampilkan konten terkait diluar postingan.{{% /hackcss-alert %}} + +Sesuaikan maksimum dari {{< external href="https://gohugo.io/getting-started/configuration/" text="Site Configuration" />}} dengan menambah `related_content_limit`: + +```toml +[params] + related_content_limit = 5 # limit to 5 items maximum site-wide +``` + +Hapus pengaturan untuk kembali ke bentuk standar. + +Lihat {{< external href="https://gohugo.io/content-management/related/" text="Related Content in Hugo" />}} untuk pilihan konfigurasi tambahan . diff --git a/themes/after-dark/docs/content/feature/related-content.md b/themes/after-dark/docs/content/feature/related-content.md new file mode 100644 index 0000000..744f231 --- /dev/null +++ b/themes/after-dark/docs/content/feature/related-content.md @@ -0,0 +1,24 @@ ++++ +title = "Related Content" +description = "Promote more of your content to your site's visitors." +categories = ["navigation"] +tags = ["links", "retention", "engagement"] +features = ["code highlighter", "snippets", "related content"] ++++ + +After Dark provides related content to help users find more information that's relevant to them and can increase page views and time spent on your site. + +When two or more pages or posts contain the same taxonomy `tags` they will be linked in a section as shown near the bottom of the page. The section appears automatically below [Post Bylines](../post-bylines) with a default maximum of 7 items shown. + +{{% hackcss-alert type="info" %}}**Tip:** Create a [Custom Layout](/feature/custom-layouts) to show Related Content outside posts.{{% /hackcss-alert %}} + +Adjust the maximum from {{< external href="https://gohugo.io/getting-started/configuration/" text="Site Configuration" />}} by adding `related_content_limit`: + +```toml +[params] + related_content_limit = 5 # limit to 5 items maximum site-wide +``` + +Remove the setting to return to the default. + +See {{< external href="https://gohugo.io/content-management/related/" text="Related Content in Hugo" />}} for additional configuration options. diff --git a/themes/after-dark/docs/content/feature/release-hashes.id.md b/themes/after-dark/docs/content/feature/release-hashes.id.md new file mode 100644 index 0000000..f37c995 --- /dev/null +++ b/themes/after-dark/docs/content/feature/release-hashes.id.md @@ -0,0 +1,38 @@ ++++ +title = "Release Hashes" +description = "Memastikan anda menggunakan perangkat After Dark yang asli." +categories = ["security"] +tags = ["validate", "privacy", "security", "cryptography", "npm", "git"] +feature = ["code highlighter", "related content"] ++++ + +After Dark memanfaatkan {{< external href="https://www.npmjs.com" text="NPM" />}} CLI untuk menghasilkan hash kriptografi yang unik di setiap rilis, memungkinkan setiap salinan diidentifikasi secara unik terlepas dari sumbernya. + +Lepaskan penggunaan hash dengan SHA-512 algoritma dan terlihat seperti ini: + +{{< hackcss-alert type="success" >}} +VWcn7AxXUkZRGsRIM/6A5RjqW7DOPH+XbnLGRp7hpr0TCH/9l31ug2h2JaIlEvsDzOPRcZDBdyZvJ4mSm/Rqjg== +{{< /hackcss-alert >}} + + +Setiap rilis hash baru dihasilkan di lokasi berikut: + +- Tertanam menggunakan PGP di {{< external href="https://git.habd.as/comfusion/after-dark/releases" text="release source" />}} pesan`git tag`. +- Dikodifikasikan ke dalam {{< external href="https://registry.npmjs.org/after-dark/latest" text="latest" />}} atau {{< external href="https://registry.npmjs.org/after-dark/6.7.9" text="version-specific" />}} metadata paket NPM. +- Tertanam di dalam After Dark [Bantuan Online](../online-help) dokumentasi. + +Setelah menerima salinan After Dark anda, anda dapat menggunakan hash rilis, untuk memverifikasi anda dapat menggunakan versi perangkat lunak yang tidak dipalsukan. + +Jalankan [Release Validator](/validate) untuk memeriksa dengan cepat rilis anda secara offline: + +{{< hackcss-card header="Interactive Release Validator" >}} + +{{< /hackcss-card >}} + +Untuk pemeriksaan yang lebih meyeluruh lakukan hal berikut ini, membandingkan hash anda dengan yang dihasilkan selama rilis seperti yang didefinisikan diatas: + +1. Instal {{< external href="https://docs.npmjs.com/cli/npm" text="npm cli" />}} di perangkat anda. +2. Navigasikan ke `themes/after-dark` dari dalam situs anda. +3. Jalankan `npm run integrity` untuk menghasilkan SHA-512 hash anda. + +Jika semuanya cocok, berarti anda sudah siap. Jika tidak, silahkan {{< external href="https://git.habd.as/comfusion/after-dark/issues/new" text="Submit an Issue" />}}. diff --git a/themes/after-dark/docs/content/feature/release-hashes.md b/themes/after-dark/docs/content/feature/release-hashes.md new file mode 100644 index 0000000..6a6f3c2 --- /dev/null +++ b/themes/after-dark/docs/content/feature/release-hashes.md @@ -0,0 +1,40 @@ ++++ +title = "Release Hashes" +description = "Verify you are using genuine After Dark software." +categories = ["security"] +tags = ["validate", "privacy", "security", "cryptography", "npm", "git"] +features = ["code highlighter", "related content"] ++++ + +After Dark utilizes the {{< external href="https://www.npmjs.com" text="NPM" />}} CLI to produce a unique cryptographic hash each release, enabling any copy to be uniquely identified regardless of its source. + +Release hashes use the SHA-512 algorithm and look like this: + +{{< hackcss-alert type="success" >}} +VWcn7AxXUkZRGsRIM/6A5RjqW7DOPH+XbnLGRp7hpr0TCH/9l31ug2h2JaIlEvsDzOPRcZDBdyZvJ4mSm/Rqjg== +{{< /hackcss-alert >}} + + +Each release a new hash is generated in the following locations: + +- Embedded using PGP in the {{< external href="https://git.habd.as/comfusion/after-dark/releases" text="release source" />}} `git tag` message. +- Codified into the {{< external href="https://registry.npmjs.org/after-dark/latest" text="latest" />}} or {{< external href="https://registry.npmjs.org/after-dark/6.7.9" text="version-specific" />}} NPM package metadata. +- Embedded inside the After Dark [Online Help](../online-help) documentation. + +Upon receiving your copy of After Dark you may use the release hash to verify you are using an unadulterated version of the software. + +Run the [Release Validator](/validate) to quickly check your release offline: + +{{< hackcss-card header="Interactive Release Validator" >}} + +{{< /hackcss-card >}} + +For a more thorough inspection do the following: + +1. Install the {{< external href="https://docs.npmjs.com/cli/npm" text="npm cli" />}} on your machine. +2. Navigate to `themes/after-dark` from within your site. +3. Run `npm i && npm run integrity` to generate your SHA-512 hash. +4. Compare your hash to the hash generated during a signed release. +5. If equal, verify the GPG signature used to sign that release. + +If inspection fails run the [Upgrade Script](../upgrade-script/) and try again. diff --git a/themes/after-dark/docs/content/feature/section-menu.id.md b/themes/after-dark/docs/content/feature/section-menu.id.md new file mode 100644 index 0000000..8c5469c --- /dev/null +++ b/themes/after-dark/docs/content/feature/section-menu.id.md @@ -0,0 +1,50 @@ ++++ +title = "Section Menu" +description = "Menampilkan navigasi site-wide kontekstual dengan tautan." +categories = ["navigation"] +tags = ["links", "taxonomy"] +feature = ["code highlighter", "snippets", "section menu"] +notes = [ + "meninjau contoh 'fuzzy-search' jika dimodifikasi" +] ++++ + +After Dark menggunakan Hugo's {{< external href="https://gohugo.io/templates/menu-templates/#section-menu-for-lazy-bloggers" text="Section Menu for “Lazy” Bloggers" />}} untuk membuat bantuan navigasi di seluruh situs. Menu bagian dinonaktifkan secara default. + +{{< hackcss-card header="Interactive Example" >}} + {{< navmenu >}} +{{< /hackcss-card >}} + +Aktifkan itu dengan mengubah pengaturan `show_menu` dalam konfigurasi situs anda: + +```toml +[params] + show_menu = false # atur ke `true` untuk mengaktifkan menu bagian +``` + +Dengan menu yang diaktifkan, tautan navigasi akan mulai muncul secara otomatis di setiap bagian saat {{< external href="https://gohugo.io/getting-started/usage/#draft-future-and-expired-content" text="Published Content" />}} tersedia dalam bagian itu. + +Tautan ke halaman yang berdiri sendiri dari {{< external href="https://gohugo.io/content-management/front-matter/" text="Front Matter" />}} dengan menentukan `menu = "main"`: + +```toml +title = "About" +menu = "main" +``` + +Sesuaikan nama tautan dan posisi menu dengan menambahkan kode blok berikut ke {{< external href="https://gohugo.io/getting-started/configuration/" text="Site Configuration" />}} anda dan memodifikasinya untuk memenuhi kebutuhan anda: + +```toml +[[menu.main]] + name = "Home" + weight = 1 + identifier = "home" + url = "/" + +[[menu.main]] + name = "Posts" + weight = 2 + identifier = "post" + url = "/post/" +``` + +Lihat {{< external href="https://gohugo.io/content-management/menus/" text="Menus in Hugo" />}} untuk informasi tambahan. diff --git a/themes/after-dark/docs/content/feature/section-menu.md b/themes/after-dark/docs/content/feature/section-menu.md new file mode 100644 index 0000000..b9fd5d8 --- /dev/null +++ b/themes/after-dark/docs/content/feature/section-menu.md @@ -0,0 +1,128 @@ ++++ +title = "Section Menu" +description = "Display a contextual site-wide navigation with links." +categories = ["navigation"] +tags = ["links", "taxonomy"] +features = ["code highlighter", "snippets", "section menu"] +notes = [ + "review 'fuzzy-search' examples if modified" +] ++++ + +After Dark uses Hugo's {{< external href="https://gohugo.io/templates/menu-templates/#section-menu-for-lazy-bloggers" text="Section Menu for “Lazy” Bloggers" />}} to create a site-wide navigational aid. The section menu is disabled by default. + +{{< hackcss-card header="Interactive Example" >}} + {{< navmenu >}} +{{< /hackcss-card >}} + +Enable it from `menu.main` layout config in your site configuration: + +```toml +[params.layout.menu.main] + hidden = true # set `false` or remove to show section menu +``` + +With the menu enabled navigation links will begin appearing automatically on a per-section basis whenever {{< external href="https://gohugo.io/getting-started/usage/#draft-future-and-expired-content" text="Published Content" />}} is available within that section. + +## Customizing + +Adjust link names and menu positions by adding the following code block to your {{< external href="https://gohugo.io/getting-started/configuration/" text="Site Configuration" />}} and modifying it to meet your needs: + +```toml +[[menu.main]] + name = "Home" + weight = 1 + identifier = "home" + url = "/" + +[[menu.main]] + name = "Posts" + weight = 2 + identifier = "post" + url = "/post/" +``` + +Exclude menu items by identifier: + +```toml +[params.layout.menu.main] + exclude = ["home", "search"] # exclude homepage and blog postings +``` + +Decorate links with SVG icons using `pre` and `post`: + +```toml +[[menu.main]] + name = "Search" + identifier = "search" + url = "/search/" + post = "" +``` + +Link to stand-alone pages using {{< external href="https://gohugo.io/content-management/front-matter/" text="Front Matter" />}} menu setting: + +```toml +title = "About" +menu = "main" +``` + +Change the link title to differentiate from page: + +```toml +title = "About Us" +menu = "main" +linktitle = "About" +``` + +Position items using {{< external "https://gohugo.io/variables/menus/#menu-entry-variables" "Menu Entry Variables" />}} for more control: + +```toml +title = "About Us" +[menu.main] + name = "About" + weight = 5 +``` + +Provide your own config settings for use in [Custom Layouts]({{< relref "custom-layouts" >}}): + +```toml +[params.layout.menu.main.custom] + social_icons = ["telegram", "mastodon", "keybase"] +``` + +And access them via your customized `navmenu.html`, if present: + +```go-html-template +{{ range .settings.custom.social_icons }} + {{ partial "social-links.html" . }} +{{ end }} +``` + +Create a second menu immediately after the first: + +```toml +[[menu.main]] + name = "Posts" + weight = 2 + identifier = "post" + url = "/post/" + +[[menu.utility]] + name = "Email" + weight = 1 + identifier = "email" + url = "mailto:d0x3d@posteo.com" +``` + +And position it to the right using [Custom Styles]({{< relref "custom-styles" >}}): + +```css +.hack > header { + display: grid; + grid-template-columns: 1fr minmax(min-content, auto); + column-gap: 20px; + grid-template-areas: "nav nav"; +} +``` + +See {{< external href="https://gohugo.io/content-management/menus/" text="Menus in Hugo" />}} for additional capabilities. For help with CSS Grid Layout get your feet wet at {{< external "https://cssgridgarden.com" />}}. diff --git a/themes/after-dark/docs/content/feature/skin-styles.id.md b/themes/after-dark/docs/content/feature/skin-styles.id.md new file mode 100644 index 0000000..a360f8c --- /dev/null +++ b/themes/after-dark/docs/content/feature/skin-styles.id.md @@ -0,0 +1,101 @@ ++++ +title = "Skin Styles" +description = "Pilih satu dari delapan skin style yang dapat disesuaikan." +categories = ["customizing"] +tags = ["color", "style", "branding"] +feature = ["code highlighter", "snippets", "related content"] +alias = [ + "/feature/display-variants/" +] ++++ + +After Dark menggunakan {{< external href="https://hackcss.egoist.moe" text="hackcss" />}} untuk menyediakan empat palet warna dan dua mode tampilan. Beralih diantara mereka dari {{< external href="https://gohugo.io/getting-started/configuration/" text="site configuration" />}} anda untuk 8 kemungkinan kombinasi: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PaletteMode
    HackStandard
    DarkNone required. +
    [params.hackcss]
    +  mode = "standard"
    +
    Dark Grey +
    [params.hackcss]
    +  palette = "dark-grey"
    +
    +
    [params.hackcss]
    +  mode = "standard"
    +  palette = "dark-grey"
    +
    Solarized Dark +
    [params.hackcss]
    +  palette = "solarized-dark"
    +
    +
    [params.hackcss]
    +  mode = "standard"
    +  palette = "solarized-dark"
    +
    Light +
    [params.hackcss]
    +  palette = "light"
    +
    +
    [params.hackcss]
    +  mode = "standard"
    +  palette = "light"
    +
    + +Skin default menggunakan palet warna`dark` dengan mode tampilan `hack`. Tidak diperlukan konfigurasi untuk menggunakan skin default. + +Pilih skin style dari konfigurasi situs anda. Sebagai contoh , untuk mengatur warna abu-abu gelap tanpa gaya perawatan `markdown` perbarui konfigurasi anda seperti: + +{{< hackcss-card header="config.toml" >}} +{{< highlight toml "linenos=inline" >}} +baseurl = "https://letterboxd.com/" +languageCode = "en-US" +title = "A Scanner Darkly" + +[params] + description = "Seorang polisi yang menyamar di masa depan yang tidak terlalu jauh terlibat dengan narkoba baru yang berbahaya dan sebagai akibatnya dia mulai kehilangan identitasnya." + images = ["https://a.ltrbxd.com/resized/sm/upload/e3/kt/un/fi/nZuqo9yQpEo447sH0w0MFBgdT6J-1200-1200-675-675-crop-000000.jpg"] + +[params.hackcss] + mode = "standard" + palette = "dark-grey" +{{< /highlight >}} +{{< /hackcss-card >}} + +Nonaktifkan skin styles dengan mengatur bendera`disabled`: + +```toml +[params.hackcss] + disabled = true # disable skin styles entirely +``` + +Saat mengganti warna, tinjau [Custom Styles](../custom-styles), [Trim Color](../trim-color) dan [Error Page](../error-page), buat penyesuaian yang diperlukan untuk mencapai tampilan dan rasa yang diinginkan. diff --git a/themes/after-dark/docs/content/feature/skin-styles.md b/themes/after-dark/docs/content/feature/skin-styles.md new file mode 100644 index 0000000..4563fdd --- /dev/null +++ b/themes/after-dark/docs/content/feature/skin-styles.md @@ -0,0 +1,101 @@ ++++ +title = "Skin Styles" +description = "Choose one of eight customizable skin styles." +categories = ["customizing"] +tags = ["color", "style", "branding"] +features = ["code highlighter", "snippets", "related content"] +aliases = [ + "/feature/display-variants/" +] ++++ + +After Dark uses {{< external href="https://hackcss.egoist.moe" text="hackcss" />}} to provide four color palettes and two display modes. Toggle between them from your {{< external href="https://gohugo.io/getting-started/configuration/" text="site configuration" />}} for 8 possible combinations: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PaletteMode
    HackStandard
    DarkNone required. +
    [params.hackcss]
    +  mode = "standard"
    +
    Dark Grey +
    [params.hackcss]
    +  palette = "dark-grey"
    +
    +
    [params.hackcss]
    +  mode = "standard"
    +  palette = "dark-grey"
    +
    Solarized Dark +
    [params.hackcss]
    +  palette = "solarized-dark"
    +
    +
    [params.hackcss]
    +  mode = "standard"
    +  palette = "solarized-dark"
    +
    Light +
    [params.hackcss]
    +  palette = "light"
    +
    +
    [params.hackcss]
    +  mode = "standard"
    +  palette = "light"
    +
    + +The default skin uses the `dark` color palette with the `hack` display mode. No configuration is necessary to use the default skin. + +Choose a skin style from your site configuration. For example, to set a dark grey color _without_ the stylistic `markdown` treatment update your config like: + +{{< hackcss-card header="config.toml" >}} +{{< highlight toml "linenos=inline" >}} +baseurl = "https://letterboxd.com/" +languageCode = "en-US" +title = "A Scanner Darkly" + +[params] + description = "An undercover cop in a not-too-distant future becomes involved with a dangerous new drug and begins to lose his own identity as a result." + images = ["https://a.ltrbxd.com/resized/sm/upload/e3/kt/un/fi/nZuqo9yQpEo447sH0w0MFBgdT6J-1200-1200-675-675-crop-000000.jpg"] + +[params.hackcss] + mode = "standard" + palette = "dark-grey" +{{< /highlight >}} +{{< /hackcss-card >}} + +Disable skin styles by setting the `disabled` flag: + +```toml +[params.hackcss] + disabled = true # disable skin styles entirely +``` + +When changing colors review [Custom Styles](../custom-styles), [Trim Color](../trim-color) and [Error Page](../error-page), making any adjustments necessary to achieve the desired look-and-feel. diff --git a/themes/after-dark/docs/content/feature/snippets.id.md b/themes/after-dark/docs/content/feature/snippets.id.md new file mode 100644 index 0000000..736377d --- /dev/null +++ b/themes/after-dark/docs/content/feature/snippets.id.md @@ -0,0 +1,49 @@ ++++ +title = "Snippets" +description = "Bagikan kode antara Shortcodes and Templat Kustom." +categories = ["customizing"] +tags = ["shortcodes", "templating", "layout"] +feature = ["related content", "code highlighter", "snippets"] ++++ + +Snippets adalah abstraksi templat yang memungkinkan anda menggunakan kembali markup dan logika yang sama dengan yang digunakan untuk membuat [Shortcodes](/shortcode) di [Custom Layouts](../custom-layouts) anda. + +Ambil contoh yang termasuk [Button Group](/shortcode/button-group) kode pendek yang digunakan untuk membuat satu set tombol gaya, yang akan kita lihat secara rinci disini. + +Pertama, Parsial: + +{{< highlight go-html-template >}} +{{< include "themes/after-dark/layouts/partials/components/buttongroup.html" >}} +{{< /highlight >}} + +Kemudian shortcode: + +{{< highlight go-html-template >}} +{{< include "themes/after-dark/layouts/shortcodes/hackcss-buttongroup.html" >}} +{{< /highlight >}} + +Perhatikan bagaimana shortcode hanya berfungsi untuk mengumpulkan input dan memanggil parsial, yang berisi semua markup dan logika tambahan. Pelimpahan tanggungjawab ini adalah abstraksi yang memungkinkan penggunaan kembali antara konten dan templat. + +Sekarang mari kita lihat bagaimana cara menggunakannya. + +Gunakan [Button Group](/shortcode/button-group) shortcode ke tombol grup dalam konten: + +```html +{{}} + {{< hackcss-button text="Left" />}} + {{< hackcss-button text="Middle" type="info" />}} + {{< hackcss-button text="Right" isghost="true" />}} +{{< /hackcss-buttongroup */>}} +``` + +Yang membuat grup tombol gaya dengan tiga tombol seperti yang dtunjukkan disini: + +{{< hackcss-buttongroup >}} + {{< hackcss-button text="Left" />}} + {{< hackcss-button text="Middle" type="info" />}} + {{< hackcss-button text="Right" isghost="true" />}} +{{< /hackcss-buttongroup >}} + +Untuk menggunakan kembali di mirror layout panggilan parsial yang digunakan di dalam shortcode. + +Seluruh [Shortcodes](/shortcode) mengimplementasikan {{< external href="https://hackcss.egoist.moe" text="hackcss" />}} komponen dibangun menggunakan abstraksi templat snippets yang memungkinkan masing-masing digunakan kembali [Custom Layouts](../custom-layouts). diff --git a/themes/after-dark/docs/content/feature/snippets.md b/themes/after-dark/docs/content/feature/snippets.md new file mode 100644 index 0000000..f7caf9e --- /dev/null +++ b/themes/after-dark/docs/content/feature/snippets.md @@ -0,0 +1,49 @@ ++++ +title = "Snippets" +description = "Share code between Shortcodes and Custom Layouts." +categories = ["customizing"] +tags = ["shortcodes", "templating", "layout"] +features = ["related content", "code highlighter", "snippets"] ++++ + +Snippets are template abstractions enabling you to reuse the same markup and logic used to create [Shortcodes](/shortcode) in your [Custom Layouts](../custom-layouts). + +Take for example the included [Button Group](/shortcode/button-group) shortcode used for creating a set of styled buttons, which we'll look at in detail here. + +First the partial: + +{{< highlight go-html-template >}} +{{< include "themes/after-dark/layouts/partials/components/buttongroup.html" >}} +{{< /highlight >}} + +Now the shortcode: + +{{< highlight go-html-template >}} +{{< include "themes/after-dark/layouts/shortcodes/hackcss-buttongroup.html" >}} +{{< /highlight >}} + +Notice how the shortcode serves only to collect input and call the partial, which contains all markup and display logic. This delegation of responsibility is the abstraction that enables reuse between content and template. + +Now let's see how to actually use it. + +Use the [Button Group](/shortcode/button-group) shortcode to group buttons in content: + +```html +{{}} + {{< hackcss-button text="Left" />}} + {{< hackcss-button text="Middle" type="info" />}} + {{< hackcss-button text="Right" isghost="true" />}} +{{< /hackcss-buttongroup */>}} +``` + +Which creates a styled button group with three buttons as shown here: + +{{< hackcss-buttongroup >}} + {{< hackcss-button text="Left" />}} + {{< hackcss-button text="Middle" type="info" />}} + {{< hackcss-button text="Right" isghost="true" />}} +{{< /hackcss-buttongroup >}} + +To reuse in layout mirror the `partial` call used inside the shortcode. + +All [Shortcodes](/shortcode) implementing {{< external href="https://hackcss.egoist.moe" text="hackcss" />}} components are built using the snippets template abstraction enabling each of them to be reused in [Custom Layouts](../custom-layouts). diff --git a/themes/after-dark/docs/content/feature/social-meta.id.md b/themes/after-dark/docs/content/feature/social-meta.id.md new file mode 100644 index 0000000..6fdf061 --- /dev/null +++ b/themes/after-dark/docs/content/feature/social-meta.id.md @@ -0,0 +1,52 @@ ++++ +title = "Social Meta" +description = "Membagikan tautan dengan gambar di Facebook dan Twitter." +categories = ["social"] +tags = ["author", "metadata", "images"] +feature = ["code highlighter", "snippets", "related content"] ++++ + +After Dark menyediakan {{< external text="Open Graph Protocol" href="http://opengraphprotocol.org" />}} dan {{< external href="https://developer.twitter.com/en/docs/tweets/optimize-with-cards" text="Twitter Cards" />}} metadata di halaman untuk mencapai kartu berbagi yang banyak: + +![Open Graph sharing card screenshot](/images/instant-view-fs8.png "Contoh kartu berbagi Open Graph yang dihasilkan oleh by After Dark") + +Menyesuaikan`author` di {{< external href="https://gohugo.io/getting-started/configuration/" text="Site Configuration" />}} untuk menentukan nama yang ditampilkan, jika ada: + +```toml +[params] + author = "Bali Bebas!" +``` + +Setel atau ganti`author` per halaman menggunakan {{< external href="https://gohugo.io/content-management/front-matter/" text="Front Matter" />}} seperti yang ditunjukkan disini: + +```toml +title = "Become a Digital Nomad in Bali: The Lost Guide" +description = "Everything you need to know to become a Digital Nomad in Bali." +author = "After Dark" +date = "2017-02-02T11:57:24+08:00" +publishdate = "2017-01-28T02:31:22+08:00" +images = [ + "https://source.unsplash.com/-09QE4q0ezw/2000x1322" +] +``` + +Sesuaikan `images` untuk menentukan gambar eksternal atau jika menggunakan {{< external href="https://gohugo.io/content-management/page-bundles/" text="Page Bundles" />}}, tentukan jalur relatif ke sumber gambar untuk digunakan: + +```toml +images = [ + "/post/post-title/images/lana-abie-581813-unsplash.jpg" +] +``` + +{{% hackcss-alert type="info" %}}**Kenapa menggunakan susunan?** Open Graph mendukung berbagai ukuran gambar. Dan meskipun After Dark tidak mendukung berbagai ukuran, pengguna dapat membuat [custom layouts](../custom-layouts) itu.{{% /hackcss-alert %}} + +Jika tidak ada gambar tingkat halaman yang disediakan After Dark akan mundur ke gambar site-wide yang dapat disesuaikan atau dihapus dari {{< external href="https://gohugo.io/getting-started/configuration/" text="Site Configuration" />}}: + +```toml +[params] + images = [ + "https://source.unsplash.com/-09QE4q0ezw/2000x1322" # site-wide og:image + ] +``` + +Lihat {{< external href="https://unsplash.com/" text="Unsplash" />}} dan {{< external href="https://source.unsplash.com/" text="Unsplash Source" />}} untuk ribuan gambar bebas royalti. diff --git a/themes/after-dark/docs/content/feature/social-meta.md b/themes/after-dark/docs/content/feature/social-meta.md new file mode 100644 index 0000000..8ddf6c8 --- /dev/null +++ b/themes/after-dark/docs/content/feature/social-meta.md @@ -0,0 +1,52 @@ ++++ +title = "Social Meta" +description = "Share links with images on Facebook and Twitter." +categories = ["social"] +tags = ["author", "metadata", "images"] +features = ["code highlighter", "snippets", "related content"] ++++ + +After Dark provides {{< external text="Open Graph Protocol" href="http://opengraphprotocol.org" />}} and {{< external href="https://developer.twitter.com/en/docs/tweets/optimize-with-cards" text="Twitter Cards" />}} metadata in pages to achieve rich sharing cards on Facebook, Twitter and more: + +![Open Graph sharing card screenshot](/images/instant-view-fs8.png "Example Open Graph sharing card produced by After Dark") + +Adjust `author` in {{< external href="https://gohugo.io/getting-started/configuration/" text="Site Configuration" />}} to specify name shown, if any: + +```toml +[params] + author = "Bali Bebas!" +``` + +Set or override `author` per page using{{< external href="https://gohugo.io/content-management/front-matter/" text="Front Matter" />}} as shown here: + +```toml +title = "Become a Digital Nomad in Bali: The Lost Guide" +description = "Everything you need to know to become a Digital Nomad in Bali." +author = "After Dark" +date = "2017-02-02T11:57:24+08:00" +publishdate = "2017-01-28T02:31:22+08:00" +images = [ + "https://source.unsplash.com/-09QE4q0ezw/2000x1322" +] +``` + +Adjust `images` to specify an external image or, if using {{< external href="https://gohugo.io/content-management/page-bundles/" text="Page Bundles" />}}, specify the relative path to the image resource to use: + +```toml +images = [ + "/post/post-title/images/lana-abie-581813-unsplash.jpg" +] +``` + +{{% hackcss-alert type="info" %}}**Why use arrays?** Open Graph supports multiple image sizes. And though After Dark doesn't support multiple sizes, users can create [custom layouts](../custom-layouts) that do.{{% /hackcss-alert %}} + +If no page-level image is provided After Dark will fallback to a site-wide image which may be adjusted or removed from {{< external href="https://gohugo.io/getting-started/configuration/" text="Site Configuration" />}}: + +```toml +[params] + images = [ + "https://source.unsplash.com/-09QE4q0ezw/2000x1322" # site-wide og:image + ] +``` + +See {{< external href="https://unsplash.com/" text="Unsplash" />}} and {{< external href="https://source.unsplash.com/" text="Unsplash Source" />}} for thousands of royalty-free images. diff --git a/themes/after-dark/docs/content/feature/structured-data.id.md b/themes/after-dark/docs/content/feature/structured-data.id.md new file mode 100644 index 0000000..3cdb89d --- /dev/null +++ b/themes/after-dark/docs/content/feature/structured-data.id.md @@ -0,0 +1,26 @@ ++++ +title = "Structured Data" +description = "Memberikan mesin pencari yang kaya tentang struktur situs." +categories = ["search"] +tags = ["metadata", "semantics", "robots", "SEO"] +feature = ["related content"] ++++ + +After Dark menghasilkan metadata terstruktur menggunakan {{< external "https://schema.org" />}} spesifikasi untuk postingan blog, [Menu Bagian](../section-menu), [Hall of Mirrors](/module/hall-of-mirrors) galeri gambar dan mengadaptasi data secara otomatis menggunakan yang ditentukan penulis [Post Bylines](../post-bylines) seperti yang ditunjukkan disini: + +Properti skema | Nilai frontmatter +--------------- | ----------------- +author? | `author` +datePublished | `publishdate` atau `date` +articleSection | `categories` + +Pertimbangkan untuk menambahkan data terstruktur saat membuat [Custom Layouts](../custom-layouts) untuk meningkatkan semantik halaman dan SEO yang lebih baik. + +Pelajari lebih lanjut tentang data terstruktur menggunakan sumber daya berikut: + +- {{< external href="https://www.w3.org/TR/microdata/" text="HTML Microdata on W3C" />}} +- {{< external href="https://developer.mozilla.org/en-US/docs/Web/HTML/Microdata" text="Microdata on MDN" />}} +- {{< external href="https://moz.com/learn/seo/schema-structured-data" text="Schema Structured Data on Moz" />}} + + +Gunakan [Webmaster Tools](../webmaster-tools/) untuk memvalidasi data terstruktur. Ini dapat dilakukan dari mesin pengembangan menggunakan [ephemeral hosting](../air-gapping/#hosting-ephemeral-dengan-enkripsi-end-to-end). diff --git a/themes/after-dark/docs/content/feature/structured-data.md b/themes/after-dark/docs/content/feature/structured-data.md new file mode 100644 index 0000000..d9dc975 --- /dev/null +++ b/themes/after-dark/docs/content/feature/structured-data.md @@ -0,0 +1,32 @@ ++++ +title = "Structured Data" +description = "Give search engines rich info about site structure." +categories = ["search"] +tags = ["metadata", "semantics", "robots", "SEO"] +features = ["related content"] ++++ + +After Dark generates structured metadata using {{< external "https://schema.org" />}} specifications for blog posts, [Section Menu](../section-menu), [Hall of Mirrors](/module/hall-of-mirrors) image galleries and adapts data automatically using author-defined [Post Bylines](../post-bylines) as shown here: + +Schema Property | Frontmatter Value +--------------- | ----------------- +author? | `author` +datePublished | `publishdate` or `date` +articleSection | `categories` + +[Post Images]({{< relref "post-images" >}}) use {{< external "https://gohugo.io/content-management/page-resources/#page-resources-metadata" "Page Resources Metadata" />}} to add image captions: + +Schema Property | Header Image Resource Metadata +--------------- | ---------------- +caption? | `creator` [`sameas` domain] or `caption` + +Consider adding structured data when creating [Custom Layouts](../custom-layouts) for improved page semantics and better SEO. + +Learn more about structured data using the following resources: + +- {{< external href="https://www.w3.org/TR/microdata/" text="HTML Microdata on W3C" />}} +- {{< external href="https://developer.mozilla.org/en-US/docs/Web/HTML/Microdata" text="Microdata on MDN" />}} +- {{< external href="https://moz.com/learn/seo/schema-structured-data" text="Schema Structured Data on Moz" />}} + + +Use [Webmaster Tools](../webmaster-tools/) to validate structured data. This can be done from a development machine using [ephemeral hosting](../air-gapping/#ephemeral-hosting-with-end-to-end-encryption). diff --git a/themes/after-dark/docs/content/feature/svg-favicon.id.md b/themes/after-dark/docs/content/feature/svg-favicon.id.md new file mode 100644 index 0000000..c1cc239 --- /dev/null +++ b/themes/after-dark/docs/content/feature/svg-favicon.id.md @@ -0,0 +1,82 @@ ++++ +title = "SVG Favicon" +description = "Hiasi situs anda dengan favicon SVG yang unik." +categories = ["customizing"] +tags = ["color", "style", "graphics", "branding"] +feature = ["code highlighter", "snippets", "related content"] ++++ + +After Dark dikirimkan dengan 169B yang dioptimalkan [^1] SVG favicon tertanam di setiap halaman: + +{{< highlight html >}} +{{< include "themes/after-dark/layouts/partials/head/favicon.html" >}} +{{< /highlight >}} + +Favicon adalah segitiga miring berwarna hitam dalam bentuk tepee seperti yang ditunjukkan[^2] di [Bantuan Online](../online-help) [Overview](/). Pusat segitiga menggunakan ruang negatif untuk memberikan ilusi segitiga sama sisi kedua dalam bentuk piramida, atau api terbuka, yang terkandung di dalam. + +Warna ikon dapat dimodifikasi dengan mengubah atribut `fill`: + + +{{< hackcss-grid class="-around" >}} + {{< hackcss-cell class="-2of12" >}} +
    + +
    +
    fill="%23f00"
    +
    +
    + {{< /hackcss-cell >}} + {{< hackcss-cell class="-2of12" >}} +
    + +
    +
    fill="lime"
    +
    +
    + {{< /hackcss-cell >}} + {{< hackcss-cell class="-2of12" >}} +
    + +
    +
    fill="%2300f"
    +
    +
    + {{< /hackcss-cell >}} +{{< /hackcss-grid >}} + +Sesuaikan dari`favicon.html` di direktori situs `layouts/partials/head`: + +``` +├── content +├── layouts +│   └── partials +│      └── head +│   └── favicon.html +├── static +``` + +Jika file belum ada, salin darii tema default: + +```sh +$ mkdir -p layouts/partials/head +$ cp themes/after-dark/layouts/partials/head/favicon.html layouts/partials/head +``` + +Jika mengoptimalkan pengalaman platform lakukan dari dalam `favicon.html`: + +{{< highlight go-html-template "linenos=inline" >}} + + + + +{{< /highlight >}} + +Lihat {{< external href="https://github.com/h5bp/html5-boilerplate/blob/master/dist/doc/extend.md#web-apps" text="H5BP Extend" />}} untuk persyaratan khusus platform dan {{< external href="https://gohugo.io/documentation/" text="Hugo Documentation" />}} untuk bantuan dengan templating fungsi dan variabel. + +[^1]: Lihat [Mengoptimalkan SVGs dalam data URIs](https://codepen.io/tigt/post/optimizing-svgs-in-data-uris) untuk membantu mengoptimalkan SVGs anda sendiri. +[^2]: Pelajari cara mendaftar [animasi SVG dengan SMIL](https://devdocs.io/svg/svg_animation_with_smil). diff --git a/themes/after-dark/docs/content/feature/svg-favicon.md b/themes/after-dark/docs/content/feature/svg-favicon.md new file mode 100644 index 0000000..6609b3f --- /dev/null +++ b/themes/after-dark/docs/content/feature/svg-favicon.md @@ -0,0 +1,82 @@ ++++ +title = "SVG Favicon" +description = "Decorate your site with a unique SVG favicon." +categories = ["customizing"] +tags = ["color", "style", "graphics", "branding"] +features = ["code highlighter", "snippets", "related content", "grid", "cell"] ++++ + +After Dark ships with an 169B optimized[^1] SVG favicon embedded into every page: + +{{< highlight html >}} +{{< include "themes/after-dark/layouts/partials/head/favicon.html" >}} +{{< /highlight >}} + +The favicon is a black-colored oblique triangle in the shape of a tepee as shown[^2] on the [Online Help](../online-help) [Overview](/). The center of the triangle uses negative space to give the illusion of a second equilateral triangle in the shape of a pyramid, or open fire, contained within. + +The color of the icon can be modified by changing the `fill` attribute: + + +{{< hackcss-grid class="-around" >}} + {{< hackcss-cell class="-2of12" >}} +
    + +
    +
    fill="%23f00"
    +
    +
    + {{< /hackcss-cell >}} + {{< hackcss-cell class="-2of12" >}} +
    + +
    +
    fill="lime"
    +
    +
    + {{< /hackcss-cell >}} + {{< hackcss-cell class="-2of12" >}} +
    + +
    +
    fill="%2300f"
    +
    +
    + {{< /hackcss-cell >}} +{{< /hackcss-grid >}} + +Adjust it from `favicon.html` in the site `layouts/partials/head` directory: + +``` +├── content +├── layouts +│   └── partials +│      └── head +│   └── favicon.html +├── static +``` + +If the file doesn't exist yet, copy it from the theme default: + +```sh +$ mkdir -p layouts/partials/head +$ cp themes/after-dark/layouts/partials/head/favicon.html layouts/partials/head +``` + +If optimizing for platform experiences do so from within `favicon.html`: + +{{< highlight go-html-template "linenos=inline" >}} + + + + +{{< /highlight >}} + +See {{< external href="https://github.com/h5bp/html5-boilerplate/blob/master/dist/doc/extend.md#web-apps" text="H5BP Extend" />}} for platform-specific requirements and {{< external href="https://gohugo.io/documentation/" text="Hugo Documentation" />}} for help with templating functions and variables. + +[^1]: See [Optimizing SVGs in data URIs](https://codepen.io/tigt/post/optimizing-svgs-in-data-uris) for help optimizing your own SVGs. +[^2]: Learn how to apply [SVG animation with SMIL](https://devdocs.io/svg/svg_animation_with_smil). diff --git a/themes/after-dark/docs/content/feature/table-of-contents.id.md b/themes/after-dark/docs/content/feature/table-of-contents.id.md new file mode 100644 index 0000000..d9c0d9e --- /dev/null +++ b/themes/after-dark/docs/content/feature/table-of-contents.id.md @@ -0,0 +1,17 @@ ++++ +title = "Table of Contents" +description = "Menemukan informasi dengan cepat di postingan yang lebih panjang." +categories = ["navigation"] +tags = ["metadata"] +feature = ["related content", "snippets", "code highlighter"] ++++ + +Secara otomatis menghasilkan daftar isi dengan tautan gulir halus berdasarkan {{< external href="https://gsnedders.html5.org/outliner/" text="page outline" />}} saat ini. Untuk melakukannya tambahkan yang berikut ini ke postingan {{< external href="https://gohugo.io/content-management/front-matter/" text="Front Matter" />}}: + +```toml +toc = true +``` + +Atur `false`, atau cukup hapus pengaturan untuk menonaktifkan. + +Daftar isi akan jatuh di bawah penyingkapan pada pemuatan halaman. Setelah penyingkapan diperluas, outline halaman penuh akan tersingkap. Memilih item dalam outline akan menggulir halus ke bagian yang sesuai, memperbarui riwayat browser dan menyorot judul bagian. diff --git a/themes/after-dark/docs/content/feature/table-of-contents.md b/themes/after-dark/docs/content/feature/table-of-contents.md new file mode 100644 index 0000000..0d5184b --- /dev/null +++ b/themes/after-dark/docs/content/feature/table-of-contents.md @@ -0,0 +1,17 @@ ++++ +title = "Table of Contents" +description = "Quickly locate information in longer posts." +categories = ["navigation"] +tags = ["metadata"] +features = ["related content", "snippets", "code highlighter"] ++++ + +Automatically generate a table of contents with smooth-scroll links based on the current {{< external href="https://gsnedders.html5.org/outliner/" text="page outline" />}}. To do so add the following to post {{< external href="https://gohugo.io/content-management/front-matter/" text="Front Matter" />}}: + +```toml +toc = true +``` + +Set `false`, or simply remove the setting, to disable. + +The table of contents will be collapsed under a disclosure on page load. Once the disclosure is expanded the full page outline will be revealed. Selecting an item in the outline will smooth-scroll to the corresponding section, update the browser history and highlight the section title. diff --git a/themes/after-dark/docs/content/feature/taxonomy-pages.id.md b/themes/after-dark/docs/content/feature/taxonomy-pages.id.md new file mode 100644 index 0000000..bb4ef39 --- /dev/null +++ b/themes/after-dark/docs/content/feature/taxonomy-pages.id.md @@ -0,0 +1,42 @@ ++++ +title = "Taxonomy Pages" +description = "Menavigasi situs menggunakan taksonomi yang ditentukan penulis." +categories = ["navigation"] +tags = ["links", "taxonomy"] +feature = ["related content", "code highlighter", "snippets"] +alias = [ + "/feature/page-taxonomies/" +] ++++ + +After Dark menghasilkan tag dan kategoris taksonomi, halaman dan tautan istilah taksonomi [Post Bylines](../post-bylines). + +Berikan halaman berikut ini {{< external href="https://gohugo.io/content-management/front-matter/" text="Front Matter" />}} untuk jenis postingan: + +```toml +categories = ["navigation"] +tags = ["links", "taxonomy"] +``` + +Tautan taksonomi berikut akan muncul di bylines: + +> Diterbitkan [by `author`] [`publishdate` or `date`] di dalam [navigation](/categories/navigation) and tagged [links](/tags/links) dan [taxonomy](/tags/taxonomy) menggunakan [`wordcount`] words. + +Berikut ini [Index Blocked](../index-blocking) halaman taksonomi dihasilkan: + +- [/categories/index.html](/categories/index.html) +- [/categories/navigation/index.html](/categories/navigation/index.html) +- [/tags/index.html](/tags/index.html) +- [/tags/links/index.html](/tags/links/index.html) +- [/tags/taxonomy/index.html](/tags/taxonomy/index.html) + +Umpan web taksonomi berikut dibuat: + +- [/categories/index.xml](/categories/index.xml) +- [/categories/navigation/index.xml](/categories/navigation/index.xml) +- [/tags/index.xml](/tags/index.xml) +- [/tags/links/index.xml](/tags/links/index.xml) +- [/tags/taxonomy/index.xml](/tags/taxonomy/index.xml) + +{{< external href="https://gohugo.io/templates/sitemap-template/" text="Sitemap" />}} dan [Related Content](../related-content) perbarui dan, jika diaktifkan, [Fuzzy Search](../fuzzy-search) indeks pencarian JSON (ditimbang pada taksonomi) dibuat ulang, semuanya otomatis +Lihat {{< external href="https://gohugo.io/content-management/taxonomies" text="Taxonomies in Hugo" />}} untuk mempelajari tentang taksonoomi dan cara menyesuaikannya. diff --git a/themes/after-dark/docs/content/feature/taxonomy-pages.md b/themes/after-dark/docs/content/feature/taxonomy-pages.md new file mode 100644 index 0000000..275dda8 --- /dev/null +++ b/themes/after-dark/docs/content/feature/taxonomy-pages.md @@ -0,0 +1,43 @@ ++++ +title = "Taxonomy Pages" +description = "Navigate the site using author-defined taxonomies." +categories = ["navigation"] +tags = ["links", "taxonomy"] +features = ["related content", "code highlighter", "snippets"] +aliases = [ + "/feature/page-taxonomies/" +] ++++ + +After Dark generates categorical and tag taxonomy and taxonomy terms pages and links to them automatically in posts using [Post Bylines](../post-bylines). + +Given the following page {{< external href="https://gohugo.io/content-management/front-matter/" text="Front Matter" />}} for a post type: + +```toml +categories = ["navigation"] +tags = ["links", "taxonomy"] +``` + +The following taxonomy links would appear in the byline: + +> Published [by `author`] [`publishdate` or `date`] in [navigation](/categories/navigation) and tagged [links](/tags/links) and [taxonomy](/tags/taxonomy) using [`wordcount`] words. + +The following [Index Blocked](../index-blocking) taxonomy pages generated: + +- [/categories/index.html](/categories/index.html) +- [/categories/navigation/index.html](/categories/navigation/index.html) +- [/tags/index.html](/tags/index.html) +- [/tags/links/index.html](/tags/links/index.html) +- [/tags/taxonomy/index.html](/tags/taxonomy/index.html) + +The following taxonomic web feeds created: + +- [/categories/index.xml](/categories/index.xml) +- [/categories/navigation/index.xml](/categories/navigation/index.xml) +- [/tags/index.xml](/tags/index.xml) +- [/tags/links/index.xml](/tags/links/index.xml) +- [/tags/taxonomy/index.xml](/tags/taxonomy/index.xml) + +The {{< external href="https://gohugo.io/templates/sitemap-template/" text="Sitemap" />}} and [Related Content](../related-content) updated and, if activated, the [Fuzzy Search](../fuzzy-search) JSON search index (weighted on taxonomy) regenerated, all automatically. + +See {{< external href="https://gohugo.io/content-management/taxonomies" text="Taxonomies in Hugo" />}} to learn about taxonomies and how to customize them. diff --git a/themes/after-dark/docs/content/feature/telegram-iv.id.md b/themes/after-dark/docs/content/feature/telegram-iv.id.md new file mode 100644 index 0000000..1ff9896 --- /dev/null +++ b/themes/after-dark/docs/content/feature/telegram-iv.id.md @@ -0,0 +1,40 @@ ++++ +title = "Instant Views" +description = "Preview secara instant konten anda di Telegram." +categories = ["social"] +tags = ["author", "templating"] +feature = ["related content"] ++++ + +After Dark menyediakan panduan templat untuk mengaktifkan Telegram Instant Views untuk postingan. Gunakan itu untuk membuat {{< external href="https://instantview.telegram.org/my/" text="Instant View Template" />}} di situs telegram: + +```yaml +# aktifkan untuk item di bagian postingan +?path: /post/.+ + +# mendefinisikan elemen-elemen yang diperlukan +title: //*[@itemprop="headline"] +body: //*[@itemprop="articleBody"] + +# jika cover ada, tentukan gambar +?exists: //head/meta[@property="og:image"]/@content +cover: //head/meta[@property="og:image"]/@content +image_url: $cover/self::img/@src + +# penulis dan data tanggal postingan diekstraksi secara otomatis +``` + +Preview hasilnya di situs Telegram : + +![Telegram Instant View screenshot](/images/instant-view-fs8.png "Example Telegram Instant View for After Dark") + +Selain itu, jika situs anda memiliki saluran telegram, anda dapat menentukannya dengan mengatur seperti yang berikut ini di konfigurasi situs anda: + +```toml +[params.seo] + telegram_channel = "channelname" # omit the leading `@` +``` + +Menentukan nama saluran memungkinkan pengguna telegram untuk bergabung dengan saluran anda dengan satu klik di dalam Instant view. + +Lihat {{< external href="https://instantview.telegram.org/" text="Instant View on Telegram" />}} untuk informasi tambahan. diff --git a/themes/after-dark/docs/content/feature/telegram-iv.md b/themes/after-dark/docs/content/feature/telegram-iv.md new file mode 100644 index 0000000..81b2fbb --- /dev/null +++ b/themes/after-dark/docs/content/feature/telegram-iv.md @@ -0,0 +1,40 @@ ++++ +title = "Instant Views" +description = "Instantly preview your content from within Telegram." +categories = ["social"] +tags = ["author", "templating"] +features = ["related content"] ++++ + +After Dark provides a template guide to enable Telegram Instant Views for posts. Use it to create an {{< external href="https://instantview.telegram.org/my/" text="Instant View Template" />}} on the Telegram site: + +```yaml +# enable for items in the post section +?path: /post/.+ + +# define required elements +title: //*[@itemprop="headline"] +body: //*[@itemprop="articleBody"] + +# if cover exists, define images +?exists: //head/meta[@property="og:image"]/@content +cover: //head/meta[@property="og:image"]/@content +image_url: $cover/self::img/@src + +# author and post date extracted automatically +``` + +Preview your results on the Telegram site: + +![Telegram Instant View screenshot](/images/instant-view-fs8.png "Example Telegram Instant View for After Dark") + +Additionally, if your site has a telegram channel, you can specify it by setting the following in your site config: + +```toml +[params.seo] + telegram_channel = "channelname" # omit the leading `@` +``` + +Specifying a channel name allows Telegram users to join your channel with a single click from within an Instant View. + +See the {{< external href="https://instantview.telegram.org/" text="Instant View on Telegram" />}} for additional information. diff --git a/themes/after-dark/docs/content/feature/trim-color.id.md b/themes/after-dark/docs/content/feature/trim-color.id.md new file mode 100644 index 0000000..05bd479 --- /dev/null +++ b/themes/after-dark/docs/content/feature/trim-color.id.md @@ -0,0 +1,27 @@ ++++ +title = "Trim Color" +description = "Menentukan warna yang digunakan untuk menampilkan batas di sekitar situs anda." +categories = ["customizing"] +tags = ["color", "style", "branding"] +feature = ["code highlighter", "snippets", "related content"] ++++ + +Trim color terkadang dapat mempengaruhi cara browser atau OS memilih untuk menampilkan batas dan aksen warna untuk situs anda. Didalam {{< external href="https://brave.com/" text="Brave" />}}, misalnya, menyesuaikan trim color mempengaruhi gaya bilah lokasi. Atur trim colors untuk menyesuaikan hal ini. + +Trim color standar secara otomatis diatur ke warna latar belakang dari yang saat ini dipilih [Skin Style](../skin-styles). Mengganti default di [Custom Styles](../custom-styles) anda dengan mendeklarasikan variabel `--trim-color` di dalam pemilih `:root` di bagian atas file: + +{{< highlight css "linenos=inline" >}} +:root { + --trim-color: firebrick; +} +{{< /highlight >}} + +Gunakan kembali variabel untuk mempertahankan konsistensi di seluruh gaya kustom anda: + +{{< highlight css "linenos=inline,linenostart=4" >}} +nav a.active { + background-color: var(--trim-color); +} +{{< /highlight >}} + +Lihat {{< external href="https://devdocs.io/css/using_css_variables" text="Using CSS variables" />}} untuk bantuan menggunakan variabel CSS. diff --git a/themes/after-dark/docs/content/feature/trim-color.md b/themes/after-dark/docs/content/feature/trim-color.md new file mode 100644 index 0000000..0230315 --- /dev/null +++ b/themes/after-dark/docs/content/feature/trim-color.md @@ -0,0 +1,27 @@ ++++ +title = "Trim Color" +description = "Define the color used to display borders around your site." +categories = ["customizing"] +tags = ["color", "style", "branding"] +features = ["code highlighter", "snippets", "related content"] ++++ + +Trim color can sometimes affect how a browser or OS chooses to display borders and accent colors for your site. In {{< external href="https://brave.com/" text="Brave" />}}, for example, adjusting trim color affects stylizes the location bar. Set a trim color to customize this behavior. + +The default trim color is automatically set to background color of the currently selected [Skin Style](../skin-styles). Override the default in your [Custom Styles](../custom-styles) by declaring the `--trim-color` variable inside a `:root` selector at the top of the file: + +{{< highlight css "linenos=inline" >}} +:root { + --trim-color: firebrick; +} +{{< /highlight >}} + +Reuse the variable to maintain consistency throughout your custom styles: + +{{< highlight css "linenos=inline,linenostart=4" >}} +nav a.active { + background-color: var(--trim-color); +} +{{< /highlight >}} + +See {{< external href="https://devdocs.io/css/using_css_variables" text="Using CSS variables" />}} for help using CSS variables. diff --git a/themes/after-dark/docs/content/feature/upgrade-script.id.md b/themes/after-dark/docs/content/feature/upgrade-script.id.md new file mode 100644 index 0000000..fa3ecf2 --- /dev/null +++ b/themes/after-dark/docs/content/feature/upgrade-script.id.md @@ -0,0 +1,43 @@ ++++ +title = "Upgrade Script" +description = "Memeriksa pembaruan After Dark dan mengupgrade dengan mudah." +categories = ["core"] +tags = ["updating", "installation", "scripts"] +feature = ["code highlighter", "related content", "snippets"] ++++ + +Untuk memeriksa pembaruan dan secara otomatis megupgrade After Dark ke versi terbaru, jalankan upgrade skrip dari direktori situs anda: + +```sh +cd flying toasters && \ +./themes/after-dark/bin/upgrade +``` + +Jika anda sudah menggunakan versi terbaru, skrip akan memberitahu anda: + +{{< hackcss-alert type="info" >}} +Did not upgrade after-dark. Already using latest version. +{{< /hackcss-alert >}} + +Jika pembaruan tersedia, skrip akan mengunduh dan menginstalnya secara otomatis: + +{{< hackcss-alert type="info" >}} +Starting upgrade from 6.7.6 to 6.8.0 ...
    +Version 6.8.0 downloaded to themes/after-dark
    +Stopping help server if running ...
    +Generating help documentation ...
    +Upgrade complete! Please see CHANGELOG.md for changes.
    +{{< /hackcss-alert >}} + +Jika versi saat ini tidak dapat dideteksi skrip akan meminta anda: + +{{< hackcss-alert type="info" >}} +Cannot detect version. Upgrade after-dark anyway (y/n)? y
    +Starting upgrade from unknown version to 6.12.1 ...
    +Version 6.12.1 downloaded to themes/after-dark
    +Stopping help server if running ...
    +Generating help documentation ...
    +Upgrade complete! Please see CHANGELOG.md for changes.
    +{{< /hackcss-alert >}} + +Seperti [Quick Install](../quick-install) Skrip upgrade ditulis ke standar PSOIX tidak akan memerlukan ketergantungan tambahan untuk beroperasi di sebagian besar sistem. Setelah upgrade [Release Hash](../release-hashes) akan memperbarui juga sehingga anda akan [Validate Release](/validate). diff --git a/themes/after-dark/docs/content/feature/upgrade-script.md b/themes/after-dark/docs/content/feature/upgrade-script.md new file mode 100644 index 0000000..d6846f1 --- /dev/null +++ b/themes/after-dark/docs/content/feature/upgrade-script.md @@ -0,0 +1,43 @@ ++++ +title = "Upgrade Script" +description = "Check for After Dark updates and upgrade effortlessly." +categories = ["core"] +tags = ["updating", "installation", "scripts"] +features = ["code highlighter", "related content", "snippets"] ++++ + +To check for updates and automatically upgrade After Dark to the latest version simply run the upgrade script from your site directory: + +```sh +cd flying toasters && \ +./themes/after-dark/bin/upgrade +``` + +If you're already using the latest version the script will let you know: + +{{< hackcss-alert type="info" >}} +Did not upgrade after-dark. Already using latest version. +{{< /hackcss-alert >}} + +If an update is available the script will download and install it automatically: + +{{< hackcss-alert type="info" >}} +Starting upgrade from 6.7.6 to 6.8.0 ...
    +Version 6.8.0 downloaded to themes/after-dark
    +Stopping help server if running ...
    +Generating help documentation ...
    +Upgrade complete! Please see CHANGELOG.md for changes.
    +{{< /hackcss-alert >}} + +If current version can't be detected the script will prompt you: + +{{< hackcss-alert type="info" >}} +Cannot detect version. Upgrade after-dark anyway (y/n)? y
    +Starting upgrade from unknown version to 6.12.1 ...
    +Version 6.12.1 downloaded to themes/after-dark
    +Stopping help server if running ...
    +Generating help documentation ...
    +Upgrade complete! Please see CHANGELOG.md for changes.
    +{{< /hackcss-alert >}} + +Like [Quick Install](../quick-install) the upgrade script is written to POSIX standard will not require additional dependencies to operate on most systems. Upon upgrade the [Release Hash](../release-hashes) will update as well so you may [Validate Release](/validate). diff --git a/themes/after-dark/docs/content/feature/webmaster-tools.id.md b/themes/after-dark/docs/content/feature/webmaster-tools.id.md new file mode 100644 index 0000000..e67d9ca --- /dev/null +++ b/themes/after-dark/docs/content/feature/webmaster-tools.id.md @@ -0,0 +1,69 @@ ++++ +title = "Webmaster Tools" +description = "Menguji dan mengirim situs anda dengan mesin pencari yang terkenal." +categories = ["search"] +tags = ["SEO", "robots", "metadata"] +feature = ["code highlighter", "related content", "snippets"] ++++ + +## Verifikasi Webmaster + +Gunakan beranda`meta` untuk memverifikasi situs anda dengan Google, Bing, Alexa dan Yandex. Semua verifikasi bersifat opsional dan beberapa penyedia mengizinkan anda [submit manually](#submit-manually). + +Untuk memverifikasi dengan`meta` tambahkan yang berikut ini ke {{< external href="https://gohugo.io/getting-started/configuration/" text="Site Configuration" />}} dan isi nilai yang diberikan kepada anda oleh konsol webmaster mesin pencari atau sejenisnya : + +```toml +[params.seo.webmaster_verifications] + google = "" # Opsional, lihat https://search.google.com/search-console + bing = "" # Opsional, lihat https://www.bing.com/toolbox/webmaster/ + yandex = "" # Opsional, lihat https://webmaster.yandex.com/ + alexa = "" # Opsional, mengklaim dihentikan (lihat catatan di bawah ini) +``` + +{{< hackcss-alert type="info" >}} +Note: Mengklaim situs anda dengan Alexa {{< external text="dihentikan" href="https://support.alexa.com/hc/en-us/articles/219135887-Claiming-has-been-retired-May-2016" />}} dalam May 2016. +{{< /hackcss-alert >}} + +Nanti anda dapat menghapus verifikasi yang tidak anda perlukan lagi atau memutuskan untuk tidak menggunakannya. + +### Kirim secara manual + +Mengirim peta situs anda secara manual untuk pengindeksan pencarian: + +{{< hackcss-form target="_blank" action="https://www.google.com/webmasters/tools/ping" >}} + {{< hackcss-formgroup >}} + {{< hackcss-label for="google" text="Google:" />}} + {{< hackcss-textinput id="google" name="sitemap" placeholder="https://domain.example/sitemap.xml" >}} + {{< /hackcss-formgroup >}} +{{< /hackcss-form >}} +{{< hackcss-form target="_blank" action="https://bing.com/webmaster/ping.aspx" >}} + {{< hackcss-formgroup >}} + {{< hackcss-label for="bing" text="Bing:" />}} + {{< hackcss-textinput id="bing" name="siteMap" placeholder="https://domain.example/sitemap.xml" >}} + {{< /hackcss-formgroup >}} +{{< /hackcss-form >}} + +## Uji Data Terstruktur + +Untuk menguji dengan Yandex gunakan {{< external href="https://webmaster.yandex.com/tools/microtest" text="Structured data validator" />}} alat uji. Untuk Google kirimkan formulir dibawah ini dengan URL yang ingin anda uji: + +{{< hackcss-form target="_blank" action="https://search.google.com/structured-data/testing-tool" >}} + {{< hackcss-formgroup >}} + {{< hackcss-textinput type="hidden" name="hl" value="en" >}} + {{< hackcss-label for="google" text="Test URL:" />}} + {{< hackcss-textinput id="google" name="url" placeholder="https://domain.example/post/" >}} + {{< /hackcss-formgroup >}} +{{< /hackcss-form >}} + +Gunakan [ephemeral hosting](../air-gapping/#ephemeral-hosting-with-end-to-end-encryption) untuk memeriksa situs anda saat dalam pengembangan/pengujian. + +## Menguji dan memantau kecepatan + +Tidak ada yang menyukai website yang lambat. Mengevaluasi dan menganalisa kinerja dari berbagai lokasi di seluruh dunia menggunakan {{< external href="https://tools.pingdom.com" text="Pingdom Tools" />}} dan {{< external "https://webpagetest.org" />}} secara gratis. + +Memantau kinerja dari waktu ke waktu menggunakan {{< external href="https://speedtracker.org" text="SpeedTracker" />}}. + + +## Layanan Tambahan + +- {{< external "https://w3c.github.io/developers/tools/" />}} diff --git a/themes/after-dark/docs/content/feature/webmaster-tools.md b/themes/after-dark/docs/content/feature/webmaster-tools.md new file mode 100644 index 0000000..3f7fd9b --- /dev/null +++ b/themes/after-dark/docs/content/feature/webmaster-tools.md @@ -0,0 +1,68 @@ ++++ +title = "Webmaster Tools" +description = "Test and submit your site with popular search engines." +categories = ["search"] +tags = ["SEO", "robots", "metadata"] +features = ["code highlighter", "related content", "snippets"] ++++ + +## Webmaster verification + +Use homepage `meta` to verify your site with Google, Bing, Alexa and Yandex. All verifications are optional and some providers allow you to [submit manually](#submit-manually). + +To verify with `meta` add the following to your {{< external href="https://gohugo.io/getting-started/configuration/" text="Site Configuration" />}} and fill in the value provided to you by the search engine webmaster console or similar: + +```toml +[params.seo.webmaster_verifications] + google = "" # Optional, see https://search.google.com/search-console + bing = "" # Optional, see https://www.bing.com/toolbox/webmaster/ + yandex = "" # Optional, see https://webmaster.yandex.com/ + alexa = "" # Optional, claiming retired (see note below) +``` + +{{< hackcss-alert type="info" >}} +Note: Claiming your site with Alexa {{< external text="was retired" href="https://support.alexa.com/hc/en-us/articles/219135887-Claiming-has-been-retired-May-2016" />}} in May 2016. +{{< /hackcss-alert >}} + +You may later remove verifications you no longer need or decide not to use. + +### Submit manually + +Manually submit your Sitemap for search indexing: + +{{< hackcss-form target="_blank" action="https://www.google.com/webmasters/tools/ping" >}} + {{< hackcss-formgroup >}} + {{< hackcss-label for="google" text="Google:" />}} + {{< hackcss-textinput id="google" name="sitemap" placeholder="https://domain.example/sitemap.xml" >}} + {{< /hackcss-formgroup >}} +{{< /hackcss-form >}} +{{< hackcss-form target="_blank" action="https://bing.com/webmaster/ping.aspx" >}} + {{< hackcss-formgroup >}} + {{< hackcss-label for="bing" text="Bing:" />}} + {{< hackcss-textinput id="bing" name="siteMap" placeholder="https://domain.example/sitemap.xml" >}} + {{< /hackcss-formgroup >}} +{{< /hackcss-form >}} + +## Test Structured Data + +To test with Yandex use their {{< external href="https://webmaster.yandex.com/tools/microtest" text="Structured data validator" />}} testing tool. For Google submit the form below with the URL you wish to test: + +{{< hackcss-form target="_blank" action="https://search.google.com/structured-data/testing-tool" >}} + {{< hackcss-formgroup >}} + {{< hackcss-textinput type="hidden" name="hl" value="en" >}} + {{< hackcss-label for="google" text="Test URL:" />}} + {{< hackcss-textinput id="google" name="url" placeholder="https://domain.example/post/" >}} + {{< /hackcss-formgroup >}} +{{< /hackcss-form >}} + +Use [ephemeral hosting](../air-gapping/#ephemeral-hosting-with-end-to-end-encryption) to check your site while in development/testing. + +## Test and Monitor Speed + +Nobody likes a slow website. Benchmark and analyze performance from various locations worldwide using {{< external href="https://tools.pingdom.com" text="Pingdom Tools" />}} and {{< external "https://webpagetest.org" />}} for free. + +Monitor performance over time using {{< external href="https://speedtracker.org" text="SpeedTracker" />}}. + +## Additional services + +- {{< external "https://w3c.github.io/developers/tools/" />}} diff --git a/themes/after-dark/docs/content/module/_index.md b/themes/after-dark/docs/content/module/_index.md new file mode 100644 index 0000000..50ce042 --- /dev/null +++ b/themes/after-dark/docs/content/module/_index.md @@ -0,0 +1,6 @@ ++++ +title = "Modules" +description = "Enhance site functionality with add-on modules." ++++ + +After Dark includes a [Module System]({{< relref "module-system" >}}) and several optional modules designed to compliment your site. A list of available modules can be found below. diff --git a/themes/after-dark/docs/content/module/fractal-forest.md b/themes/after-dark/docs/content/module/fractal-forest.md new file mode 100644 index 0000000..6454548 --- /dev/null +++ b/themes/after-dark/docs/content/module/fractal-forest.md @@ -0,0 +1,52 @@ ++++ +title = "Fractal Forest" +slug = "fractal-forest" +description = "BPG Image Format add-on module for After Dark." +summary = "BPG Image Format (Preinstalled)." +categories = ["addon"] +tags = ["module", "images", "graphics", "installation", "performance"] +features = ["related content", "snippets", "section menu"] ++++ + +**BPG Image format Homepage:** {{< external "https://bellard.org/bpg/" />}}
    +**Module Source:** {{< external "https://git.habd.as/comfusion/fractal-forest" />}} + +## Demo + +- {{< external "http://xooyoozoo.github.io/yolo-octo-bugfixes/" "Visual comparison" />}} between BPG, JPEG, JP2K and WebP +- {{< external "https://bellard.org/bpg/lena.html" "Lena 512x512 image, visual comparison with JPEG" />}} +- {{< external "https://bellard.org/bpg/gallery1.html" "Wikipedia photos" />}} +- {{< external "https://bellard.org/bpg/gallery2.html" "Images with alpha channel" />}} +- {{< external "https://bellard.org/bpg/gallery3.html" "Test images using different color spaces and bit depth" />}} +- {{< external "https://bellard.org/bpg/animation.html" "Test animations" />}} + +## Installation + +{{% hackcss-alert type="info" %}}**Note:** Module pre-installed via [Quick Install]({{< relref "quick-install" >}}) with example in post archetype.{{% /hackcss-alert %}} + +Choose a module download source: + +- {{< external "https://www.npmjs.com/package/fractal-forest" />}} +- {{< external "https://www.jsdelivr.com/package/npm/fractal-forest" />}} +- {{< external "https://git.habd.as/comfusion/fractal-forest" />}} + +Extract module contents into site `themes` directory: + +```sh +├── static +└── themes + ├── after-dark + └── fractal-forest +``` + +Specify module in site config: + +{{< highlight toml "linenos=inline,linenostart=6" >}} +# Controls default theme and theme components +theme = [ + "fractal-forest", # sequence before "after-dark" + "after-dark" +] +{{< /highlight >}} + +See {{< external href="https://git.habd.as/comfusion/fractal-forest/src/branch/master/README.md" text="README.md" />}} to confirm you're using the minimum required version of After Dark; and module setup, configuration and usage instructions. If you need help you may {{< external href="https://git.habd.as/comfusion/fractal-forest/issues" text="Submit an Issue" />}} with your question. diff --git a/themes/after-dark/docs/content/module/hall-of-mirrors.md b/themes/after-dark/docs/content/module/hall-of-mirrors.md new file mode 100644 index 0000000..655d93a --- /dev/null +++ b/themes/after-dark/docs/content/module/hall-of-mirrors.md @@ -0,0 +1,50 @@ ++++ +title = "Hall of Mirrors" +slug = "hall-of-mirrors" +description = "Responsive PhotoSwipe Image Galleries add-on module for After Dark." +summary = "Responsive PhotoSwipe Image Galleries." +categories = ["addon"] +tags = ["module", "images", "graphics", "engagement"] +features = ["related content", "snippets", "section menu"] ++++ + +**PhotoSwipe Homepage:** {{< external "http://photoswipe.com" />}}
    +**Module Source:** {{< external "https://git.habd.as/comfusion/hall-of-mirrors" />}} + +## Demo + +{{< hackcss-alert >}} + +{{< /hackcss-alert >}} + +## Installation + +Choose a module download source: + +- {{< external "https://www.npmjs.com/package/hall-of-mirrors" />}} +- {{< external "https://www.jsdelivr.com/package/npm/hall-of-mirrors" />}} +- {{< external "https://git.habd.as/comfusion/hall-of-mirrors" />}} + +Extract module contents into site `themes` directory: + +```sh +├── static +└── themes + ├── after-dark + └── hall-of-mirrors +``` + +Specify module in site config: + +{{< highlight toml "linenos=inline,linenostart=6" >}} +# Controls default theme and theme components +theme = [ + "hall-of-mirrors", # sequence before "after-dark" + "after-dark" +] +{{< /highlight >}} + +See {{< external href="https://git.habd.as/comfusion/hall-of-mirrors/src/branch/master/README.md" text="README.md" />}} to confirm you're using the minimum required version of After Dark; and module setup, configuration and usage instructions. If you need help you may {{< external href="https://git.habd.as/comfusion/hall-of-mirrors/issues" text="Submit an Issue" />}} with your question. diff --git a/themes/after-dark/docs/content/module/toxic-swamp.md b/themes/after-dark/docs/content/module/toxic-swamp.md new file mode 100644 index 0000000..a548b1f --- /dev/null +++ b/themes/after-dark/docs/content/module/toxic-swamp.md @@ -0,0 +1,524 @@ ++++ +title = "Toxic Swamp" +slug = "toxic-swamp" +description = "Monero/Aeon Web Miner add-on module for After Dark." +summary = "Monero/Aeon Web Miner." +categories = ["addon"] +tags = ["module", "monetization", "rewards", "cryptocurrency"] +features = ["snippets", "related content"] +[security.csp.directives] + scriptSrc = [ + "'sha512-TKVuLlCT8+a0Chpa6Pw3clhu9fhZ9JOzgblgxQaUQVP/z4lfPnrdyWDOgucORnS2qapWu/iPVG2d0ywyGH2NjA=='" + ] ++++ + +Monetize attention in one of more than 40 cryptocurrency mining pools and take home 200% more per hash when compared to Coinhive.[^1] + +{{< hackcss-alert >}} + +{{< /hackcss-alert >}} + +# Features + +- Earn cryptocurrency while visitors browse your sites +- Reward effort during site development and publishing +- Transparent, unobtrusive multilingual user interface +- Does not use cookies or connect to any third-parties +- Obfuscates end-user IPs and other connection details +- Automatically starts when external power is detected +- Suspends operation during loss of power or attention +- Optimized for low-bandwidth high-latency connections + +# Installation + +Choose a module download source: + +- {{< external "https://www.npmjs.com/package/toxic-swamp" />}} - npm +- {{< external "https://www.jsdelivr.com/package/npm/toxic-swamp" />}} - cdn +- {{< external "https://git.habd.as/comfusion/toxic-swamp" />}} - git + +Extract module contents into site themes directory: + +``` +├── static +└── themes + ├── after-dark + └── toxic-swamp +``` + +Verify [Release Hash]({{< relref "release-hashes" >}}) and GPG signature: + +```sh +cd themes/toxic-swamp && \ +npm install && npm run integrity && \ +git tag --verify v1.0.0-beta.16 +``` + +Specify module in site config: + +{{< highlight toml "linenos=inline,linenostart=6" >}} +# Controls default theme and theme components +theme = [ + "toxic-swamp", # sequence before "after-dark" + "after-dark" +] +{{< /highlight >}} + +Configure with payout address to start earning rewards: + +{{< highlight toml "linenos=inline,linenostart=36" >}} +[params.modules.toxic_swamp] + enabled = true # Optional, set false to disable module + address = "your-address-here" +{{< /highlight >}} + +# Earning Rewards + +Using [The Fire Swamp](#the-fire-swamp) with a configured payout address, you may view your hash metrics and payout information from the {{< external href="https://moneroocean.stream/?dark#/dashboard" text="MoneroOcean Dashboard" />}}: + +{{< figure alt="MoneroOcean Dashboard screenshots" + src="/images/screenshots/monero-ocean-dashboard-fs8.png" + caption="Monero Ocean Dashboard showing Toxic Swamp mining activity." +>}} + +See the MoneroOcean {{< external href="https://moneroocean.stream/?dark#/help/faq" text="FAQ" />}} for more details. + +# The Fire Swamp + +After Dark provides upgrade incentives The Fire Swamp using {{< external href="https://moneroocean.stream/?dark" text="MoneroOcean" />}} to help you get started and as a fallback when custom proxies fail to connect. + +The proxy servers are located at `fs*.habd.as:80` and will be used by default until you [Create Your Own Proxy](#create-your-own-proxy) or fall more than two major versions behind. + +To maximize your rewards while using the Fire Swamp proxy you must try to keep your After Dark version up-to-date as illustrated here: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Figure 1: Fire Swamp upgrade incentive based on After Dark version
    Latest VersionYour VersionUpgrade Incentive
    7.0.07.0.0None
    7.0.27.0.12.2%
    7.1.07.0.213.6%
    8.0.07.1.034.1%
    + +To describe in more detail: + +- If a bugfix, documentation update, refactoring or other patch release occurs your upgrade incentive is 2.2% of your total combined mining hash power. + +- If an enhancement, feature or other minor release occurs your upgrade incentive is 13.6% of your total combined mining hash power. + +- If a breaking change, license update or other major release occurs your upgrade incentive is 34.1% of your total combined mining hash power. + +- If you fall more than one point release behind any minor or patch release the upgrade incentive will remain the same as if you were only one release behind. + +- If you fall more than two majors behind your miner may continue to function but you will be required to upgrade to maintain your upgrade incentive. + +Maximize your incentive with reduced effort by using the [Upgrade Script](/feature/upgrade-script/) to check for and automatically update After Dark to the latest available version. + +{{< hackcss-alert type="success" >}} + Tip: After Dark uses {{< external href="https://semver.org" text="Semantic Versioning" />}} and the latest version may be tracked programmatically using on the NPM registry and in JSON form {{< external href="https://registry.npmjs.org/-/package/after-dark/dist-tags" text="here" />}}. +{{< /hackcss-alert >}} + +{{< hackcss-alert type="info" >}} + Note: After Dark updates are typically backwards compatible with existing modules though there may be cases where module updates are required. +{{< /hackcss-alert >}} + +# Create Your Own Proxy + +Advanced users may wish to configure their own proxy servers. To do so select Advanced Settings when generating configuration after standing-up your proxy server described in more detail here: + +
    +Expand to view details + +Use the instructions in {{< external "https://git.habd.as/comfusion/webminerpool" />}} to stand up your own proxy server and reference the following to understand connection activity: + + + + + Legend +
    +
    A
    Active +
    I
    Inactive +
    S
    Standby +
    E
    Error +
    O
    Open +
    C
    Closed +
    K
    Known +
    U
    Unknown +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Figure 2: Miner connection activity by device, proxy and toolbar state
    DeviceToolbarMinerProxy
    ChargingOnlineCoresVisiblePoweredThrottleStatusSocketWorkersLoadOnlinePoolAllow
    --------Off--I------------
    YesYes8NoOnAnySC80------
    YesNo8YesOnAnySE80------
    NoYes16YesOn25IC164YesKYes
    YesYes16YesOn25AO1612YesKYes
    YesYes32YesOn50AO3216YesKYes
    YesYes32YesOn75AO3224YesKYes
    YesYes64YesOnAnySE640YesUNo
    YesYes64YesOnAnySE640No----
    + +Generate configuration with `Advanced Settings` specified: + +{{< hackcss-card header="Interactive Config Generator" >}} + + {{< hackcss-form name="generator" disabled="true" action="http://localhost:1414/module/toxic-swamp/configuration/" >}} + + {{< hackcss-alert type="warning" class="js-usesameorigin" >}} + + NOPE! Attempting to submit to unknown origin. + {{< /hackcss-alert >}} + {{< hackcss-alert type="warning" class="js-useonlinehelp" >}} + Please use Online Help to generate configuration with Air Gapping. + {{< /hackcss-alert >}} + {{< hackcss-alert type="warning" class="js-disconnect" >}} + + Please Disconnect from the network before generating your configuration. + {{< /hackcss-alert >}} + {{< hackcss-formgroup name="addressgroup" >}} + {{< hackcss-label for="address" >}} + XMR Address: + {{< /hackcss-label >}} + {{< hackcss-textinput + required="true" + disabled="true" + type="text" id="address" name="address" + placeholder="44ky1q4d..." + pattern="^4[0-9AB][123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{93}$" + >}} + {{< hackcss-helpblock >}} + Enter payout address. {{< external href="https://getmonero.org/resources/user-guides/securely_purchase.html" >}}Create Secure Wallet{{< /external >}}. + {{< /hackcss-helpblock >}} + {{< /hackcss-formgroup >}} + {{< hackcss-buttongroup formactions="true" >}} + {{< hackcss-button class="muted" name="generate" type="success" text="Generate Config" disabled="true" />}} + {{< /hackcss-buttongroup >}} +
    + Advanced Settings +

    Optional. Create Your Own Proxy before using.

    + {{< hackcss-formgroup name="servergroup" >}} + {{< hackcss-label for="server" text="Proxy Server:" />}} + {{< hackcss-textinput type="url" id="server" name="server" placeholder="wss://domain.example:80" >}} + {{< hackcss-helpblock >}} + Web Socket URL for custom proxy server. + {{< /hackcss-helpblock >}} + {{< /hackcss-formgroup >}} + {{< hackcss-formgroup name="poolgroup" >}} + {{< hackcss-label for="pool" text="Mining pool:" />}} + {{< hackcss-select id="pool" name="pool" >}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{< /hackcss-select >}} + {{< hackcss-helpblock >}} + Select a {{< external href="https://git.habd.as/comfusion/toxic-swamp/src/branch/master/server/pools.json" text="supported pool" />}} to mine with. + {{< /hackcss-helpblock >}} + {{< /hackcss-formgroup >}} + {{< hackcss-formgroup name="poolpassgroup" >}} + {{< hackcss-label for="poolpass" text="Password:" />}} + {{< hackcss-textinput type="password" id="poolpass" name="poolpass" >}} + {{< hackcss-helpblock >}} + Password for your pool. Often not needed. + {{< /hackcss-helpblock >}} + {{< /hackcss-formgroup >}} + {{< hackcss-formgroup name="throttlegroup" >}} + {{< hackcss-label for="throttle" text="Throttle:" />}} + {{< hackcss-textinput type="number" id="throttle" name="throttle" placeholder="Use 90 for 10% capacity" step="5" min="70" max="90" >}} + {{< hackcss-helpblock >}} + Override default of 70 (30% capacity). + {{< /hackcss-helpblock >}} + {{< /hackcss-formgroup >}} + {{< hackcss-formgroup name="useridgroup" >}} + {{< hackcss-label for="userid" text="User Id:" />}} + {{< hackcss-textinput type="text" id="userid" name="userid" placeholder="Any string with a length < 200 characters" maxlength="200" >}} + {{< hackcss-helpblock >}} + Combine hash metrics for all users. + {{< /hackcss-helpblock >}} + {{< /hackcss-formgroup >}} +
    + {{< /hackcss-form >}} +{{< /hackcss-card >}} + +Enable debugging to output detailed socket messages from the proxy to the browser console by adding the following to your site config: + +```toml +[params.modules.toxic_swamp] + debugging = true +``` + +
    + +# Internationalization + +English translations available for toolbar display: + +- Indonesian (id) +- Russian (ru) +- Greek (el) + +Enable them with module `translations` whitelist: + +```toml +[params.modules.toxic_swamp] + translations = ["id", "ru", "el"] # English translations enabled +``` + +Use `languageCode` site config to control which is displayed: + +```toml +languageCode = "en-US" # English (United States) or English by default +languageCode = "id-ID" # Indonesian (Indonesia) or Indonesian, if available +languageCode = "ru-RU" # Russian (Russia) or Russian, if available +``` + +{{< hackcss-alert type="info" >}} +Note: Language tag syntax is defined by the IETF's {{< external href="https://tools.ietf.org/html/bcp47" text="BCP 47" />}}. +{{< /hackcss-alert >}} + +Modify translations from `inline.jsonld.html` in your site `layouts` directory. If the file doesn't exist yet, copy it from module default: + +```sh +mkdir -p layouts/partials/modules/toxic-swamp/ && \ +cp themes/toxic-swamp/layouts/partials/modules/toxic-swamp/inline.jsonld.html $_ +``` + +Remove config and customizations to return to module defaults. + +[^1]: Estimate assumes 50% {{< external href="https://coinhive.com/info/faq#rev-share" text="non-negotiable" />}} Coinhive mining fee compared with 0% for {{< external href="https://moneroocean.stream/?dark#/help/faq" text="MoneroOcean" />}} and excludes upgrade incentives, hashrate variance, pool and proxy uptime, withdrawal fees and other optimizations. diff --git a/themes/after-dark/docs/content/module/toxic-swamp/configuration.md b/themes/after-dark/docs/content/module/toxic-swamp/configuration.md new file mode 100644 index 0000000..f9d6ace --- /dev/null +++ b/themes/after-dark/docs/content/module/toxic-swamp/configuration.md @@ -0,0 +1,70 @@ ++++ +title = "Configuration Settings" +description = "Toxic Swamp one-time configuration settings." +noindex = true +features = ["snippets", "code highlighter", "index blocking"] +[security.csp.directives] + scriptSrc = [ + "'sha512-ZcJCmjpwoDxVbrP6iOEsmJC7fC6I0nq6bSOjjbGkrbSE7mtb0647MoQa+Wbxa8fkTUqhUYkfVY/oduanSklU9g=='" + ] ++++ + + + +Add the following to your site config: + +
    + {{% hackcss-card header="config.toml" %}}[Generate Config](../#config-generator) to view config settings.{{% /hackcss-card %}} +
    + + + + + +
    +

    Then rebuild your site to start Earning Rewards. +

    diff --git a/themes/after-dark/docs/content/module/voyeur.md b/themes/after-dark/docs/content/module/voyeur.md new file mode 100644 index 0000000..f3cc052 --- /dev/null +++ b/themes/after-dark/docs/content/module/voyeur.md @@ -0,0 +1,50 @@ ++++ +title = "Voyeur" +slug = "voyeur" +description = "DIY self-hosted Fathom Analytics add-on module for After Dark." +summary = "DIY self-hosted Fathom Analytics." +categories = ["addon"] +tags = ["module", "analytics", "privacy", "engagement"] +features = ["related content", "snippets", "section menu"] ++++ + +**Fathom Mirror:** {{< external "https://git.habd.as/comfusion/fathom" />}}
    +**Module Source:** {{< external "https://git.habd.as/comfusion/voyeur" />}} + +{{< figure alt="After Dark screenshots" + src="/images/screenshots/module-voyeur-analytics-fs8.png" + caption="Voyeur Analytics Dashboard." +>}} + +Please visit the {{< external "https://usefathom.com" "Fathom Website" />}} for interactive product demo. + +## Installation + +Choose module download source: + +- {{< external "https://www.npmjs.com/package/mod-voyeur" />}} +- {{< external "https://www.jsdelivr.com/package/npm/mod-voyeur" />}} +- {{< external "https://git.habd.as/comfusion/voyeur" />}} + +Extract module contents into site `themes` directory: + +```sh +├── static +└── themes + ├── after-dark + └── voyeur +``` + +Specify module in site config: + +{{< highlight toml "linenos=inline,linenostart=6" >}} +# Controls default theme and theme components +theme = [ + "voyeur", # sequence before "after-dark" + "after-dark" +] +{{< /highlight >}} + +{{% hackcss-alert type="warning" %}}**Warning:** While Fathom was designed for privacy they {{% external "https://github.com/usefathom/fathom/issues/40" "made the mistake" /%}} of using a tracking cookie. If your version of Fathom uses cookies please set `has_cookies = true` in your site config.{{% /hackcss-alert %}} + +See {{< external href="https://git.habd.as/comfusion/voyeur/src/branch/master/README.md" text="README.md" />}} to confirm you're using the minimum required version of After Dark; and module setup, configuration and usage instructions. If you need help you may {{< external href="https://git.habd.as/comfusion/voyeur/issues" text="Submit an Issue" />}} with your question. diff --git a/themes/after-dark/docs/content/search/_index.md b/themes/after-dark/docs/content/search/_index.md new file mode 100644 index 0000000..17736d6 --- /dev/null +++ b/themes/after-dark/docs/content/search/_index.md @@ -0,0 +1,15 @@ ++++ +title = "Search" # title of the page +layout = "search" # sets the layout to use +noindex = true # tell robots not to index +[form] + helpblock = "Press s to focus input anytime." +[form.input] + placeholder = "Enter search query…" + disabled = false +[security.csp.directives] + scriptSrc = [ + "'sha512-Bxby9zhln4Zc2thGA1E9CdT4qcCY52SxO/SBxAH6qQK6LK6/1gGq1xJ3Uz0SXTsPSL6quze7bYQUHr94xJS7jQ=='", + "'unsafe-eval'" + ] ++++ diff --git a/themes/after-dark/docs/content/shortcode/_index.md b/themes/after-dark/docs/content/shortcode/_index.md new file mode 100644 index 0000000..53e01ce --- /dev/null +++ b/themes/after-dark/docs/content/shortcode/_index.md @@ -0,0 +1,4 @@ ++++ +title = "Shortcodes" +description = "Easily create complex interfaces directly within your content." ++++ diff --git a/themes/after-dark/docs/content/shortcode/alert.md b/themes/after-dark/docs/content/shortcode/alert.md new file mode 100644 index 0000000..a13a5c3 --- /dev/null +++ b/themes/after-dark/docs/content/shortcode/alert.md @@ -0,0 +1,153 @@ ++++ +title = "Alert" +description = "Display contextual alert messages and dialogs." +categories = ["experience"] +tags = ["alert", "dialog", "message", "advertisement"] +html_attributes = ['class'] +custom_attributes = ["type", "text"] +snippets_used = ["alert", "card", "external", "button", "button group", "progress"] ++++ + + +{{< hackcss-card header="Quick Example" >}} + {{< hackcss-alert type="info" class="margin-reset" >}} + {{< hackcss-button + type="primary" text="Toggle" + onclick="this.parentElement.classList.toggle('alert')" + />}} alert styling. + {{< /hackcss-alert >}} +{{< highlight html "linenos=inline" >}} +{{}} + {{< hackcss-button + type="primary" text="Toggle" + onclick="this.parentElement.classList.toggle('alert')" + />}} alert styling. +{{< /hackcss-alert */>}} +{{< /highlight >}} +{{< /hackcss-card >}} + +Default with plain text and hidden comment: + +```html +{{}} +{{}}Inner Alert Text{{< /hackcss-alert */>}} +{{}}Hidden Comment{{< /hackcss-alert */>}} +``` + +{{< hackcss-alert text="Alert Text" />}} +{{< hackcss-alert >}}Inner Alert Text{{< /hackcss-alert >}} +{{< hackcss-alert text="Alert Text" >}}Hidden Comment{{< /hackcss-alert >}} + +Default with formatted text: + +```html +{{}} + HTML Text +{{< /hackcss-alert */>}} +{{%/* hackcss-alert %}}**Markdown** Text{{% /hackcss-alert */%}} +``` + +{{< hackcss-alert >}} + HTML Text +{{< /hackcss-alert >}} +{{% hackcss-alert %}}**Markdown** Text{{% /hackcss-alert %}} + +Typed with plain and formatted text: + +```html +{{}} +{{}}Info ~~Text~~{{< /hackcss-alert */>}} +{{%/* hackcss-alert type="warning" %}}~~Warning~~ Text{{% /hackcss-alert */%}} +{{}} + Error Text +{{< /hackcss-alert */>}} +``` + +{{< hackcss-alert type="success" text="Success Text" />}} +{{< hackcss-alert type="info" >}}Info ~~Text~~{{< /hackcss-alert >}} +{{% hackcss-alert type="warning" %}}~~Warning~~ Text{{% /hackcss-alert %}} +{{< hackcss-alert type="error" >}} + Error Text +{{< /hackcss-alert >}} + +Typed with interactive [Button](../button) and plain text: + +```html +{{}} + {{< hackcss-button + type="info" isghost="true" text="Toggle" + onclick="this.parentElement.classList.toggle('alert')" + />}} alert styling. +{{< /hackcss-alert */>}} +``` + +{{< hackcss-alert type="info" >}} + {{< hackcss-button + type="info" isghost="true" text="Toggle" + onclick="this.parentElement.classList.toggle('alert')" + />}} alert styling. +{{< /hackcss-alert >}} + +Inside a [Card](../card) with a [Button Group](../button-group) and two interactive [Buttons](../button): + +```html +{{}} + {{< hackcss-alert type="success" text="Congratulations! Your application was approved." />}} + {{< hackcss-buttongroup >}} + {{< hackcss-button text="Hide" type="primary" onclick="this.closest('.card').querySelector('.alert').hidden=true" />}} + {{< hackcss-button text="Show" onclick="this.closest('.card').querySelector('.alert').hidden=false" />}} + {{< /hackcss-buttongroup >}} +{{< /hackcss-card */>}} +``` + +{{< hackcss-card header="Card Title" >}} + {{< hackcss-alert type="success" text="Congratulations! Your application was approved." />}} + {{< hackcss-buttongroup >}} + {{< hackcss-button text="Hide" type="primary" onclick="this.closest('.card').querySelector('.alert').hidden=true" />}} + {{< hackcss-button text="Show" onclick="this.closest('.card').querySelector('.alert').hidden=false" />}} + {{< /hackcss-buttongroup >}} +{{< /hackcss-card >}} + +Typed with HTML graphic and [External](../external) link: + +```html +{{}} + Advertisement + {{< external href="https://go.habd.as/nano-s" class="muted" >}} + Ledger Nano S - The secure hardware wallet + {{< /external >}} +{{< /hackcss-alert */>}} +``` + +{{< hackcss-alert type="success" >}} + Advertisement + {{< external href="https://go.habd.as/nano-s" class="muted" >}} + Ledger Nano S - The secure hardware wallet + {{< /external >}} +{{< /hackcss-alert >}} + +Containing a [Card](../card) with six [Progress](../progress) indicators: + +```html +{{}} + {{< hackcss-card header="Value-added Tax by Country" >}} + {{< hackcss-progress value="16" showpercent="true" filltext="China – 增值税" >}} + {{< hackcss-progress value="20" showpercent="true" filltext="France – TVA" >}} + {{< hackcss-progress value="10" showpercent="true" filltext="Indonesia – PPN" >}} + {{< hackcss-progress value="8" showpercent="true" filltext="Japan – 消費税" >}} + {{< hackcss-progress value="15" showpercent="true" filltext="New Zealand – GST" >}} + {{< hackcss-progress value="20" showpercent="true" filltext="United Kingdom – VAT" >}} + {{< /hackcss-card >}} +{{< /hackcss-alert */>}} +``` + +{{< hackcss-alert >}} + {{< hackcss-card header="Value-added Tax by Country" >}} + {{< hackcss-progress value="16" showpercent="true" filltext="China – 增值税" >}} + {{< hackcss-progress value="20" showpercent="true" filltext="France – TVA" >}} + {{< hackcss-progress value="10" showpercent="true" filltext="Indonesia – PPN" >}} + {{< hackcss-progress value="8" showpercent="true" filltext="Japan – 消費税" >}} + {{< hackcss-progress value="15" showpercent="true" filltext="New Zealand – GST" >}} + {{< hackcss-progress value="20" showpercent="true" filltext="United Kingdom – VAT" >}} + {{< /hackcss-card >}} +{{< /hackcss-alert >}} diff --git a/themes/after-dark/docs/content/shortcode/blockquote.md b/themes/after-dark/docs/content/shortcode/blockquote.md new file mode 100644 index 0000000..5a43334 --- /dev/null +++ b/themes/after-dark/docs/content/shortcode/blockquote.md @@ -0,0 +1,76 @@ ++++ +title = "Blockquote" +description = "Create pull quotes with citations and citation links." +categories = ["experience"] +tags = [] +html_attributes = [] +custom_attributes = [] +snippets_used = ["blockquote"] ++++ + +With source: + +```html +{{}} +``` + +{{< blockquote + cite="Mark Twain" text="The more things are forbidden, the more popular they become." +/>}} + +With anonymous source: + +```html +{{}} +``` + +{{< blockquote + text="Obsessed is a word that the lazy use to describe the dedicated." +/>}} + +With source and citation link: + +```html +{{}} +``` + +{{< blockquote + citelink="https://style.mla.org/urls-some-practical-advice/" + cite="Angela Gibson, URLs: Some Practical Advice" + text="Ensuring the enduring availability and retrievability of a source is not the primary objective of documentation, even though the Internet allows for the retrieval of online works referred to in other online works." +/>}} + +With citation link but no source: + +```html +{{}} +``` + +{{< blockquote + citelink="https://bitly.is/2mkxskj" + text="When you create your own Branded Short Domain, you can expect to see up to a 34% increase in CTR when compared to standard bit.ly links." +/>}} + +With longer quotations: + +```html +{{}} + At the end of the day, you are solely responsible for your success and your failure. And the sooner you realize that, you accept that, and integrate that into your work ethic, you will start being successful. As long as you blame others for the reason you aren't where you want to be, you will always be a failure. +{{< /blockquote */>}} +``` + +{{< blockquote cite="Erin Cummings" >}} + At the end of the day, you are solely responsible for your success and your failure. And the sooner you realize that, you accept that, and integrate that into your work ethic, you will start being successful. As long as you blame others for the reason you aren't where you want to be, you will always be a failure. +{{< /blockquote >}} diff --git a/themes/after-dark/docs/content/shortcode/button-group.md b/themes/after-dark/docs/content/shortcode/button-group.md new file mode 100644 index 0000000..85f4e09 --- /dev/null +++ b/themes/after-dark/docs/content/shortcode/button-group.md @@ -0,0 +1,64 @@ ++++ +title = "Button Group" +description = "Layout buttons to fit buttons snugly together." +categories = ["interaction"] +tags = ["controls"] +html_attributes = ["class"] +custom_attributes = ["formactions"] +snippets_used = ["button group", "button", "form"] +notes = [ + "update 'snippets' if this content is updated" +] ++++ + +With three [Buttons](../button), one ghosted and one of type info: + +```html +{{}} + {{< hackcss-button text="Left" />}} + {{< hackcss-button type="info" >}}Middle{{< /hackcss-button >}} + {{< hackcss-button text="Right" isghost="true" />}} +{{< /hackcss-buttongroup */>}} +``` + +{{< hackcss-buttongroup >}} + {{< hackcss-button text="Left" />}} + {{< hackcss-button type="info" >}}Middle{{< /hackcss-button >}} + {{< hackcss-button text="Right" isghost="true" />}} +{{< /hackcss-buttongroup >}} + +With three [Buttons](../button) styled using `class` attribute: + +```html + +{{}} + {{< hackcss-button />}} + {{< hackcss-button type="info" />}} +{{< /hackcss-buttongroup */>}} +``` + + +{{< hackcss-buttongroup class="btn-text" >}} + {{< hackcss-button />}} + {{< hackcss-button type="info" />}} +{{< /hackcss-buttongroup >}} + +With two [Buttons](../button) inside a [Form](../form) using `formactions` attribute: + +```html +{{}} + {{< hackcss-textinput type="hidden" name="s" value="button" >}} + {{< hackcss-buttongroup formactions="true" >}} + {{< hackcss-button text="Print" action="javascript:window.print()" />}} + {{< hackcss-button text="Search" type="primary" isghost="true" />}} + {{< /hackcss-buttongroup >}} +{{< /hackcss-form */>}} +``` + +{{< hackcss-form action="/search" >}} + {{< hackcss-textinput type="hidden" name="s" value="group" >}} + {{< hackcss-buttongroup formactions="true" >}} + {{< hackcss-button text="Print" action="javascript:window.print()" />}} + {{< hackcss-button text="Search" type="primary" isghost="true" />}} + {{< /hackcss-buttongroup >}} +{{< /hackcss-form >}} diff --git a/themes/after-dark/docs/content/shortcode/button.md b/themes/after-dark/docs/content/shortcode/button.md new file mode 100644 index 0000000..360def4 --- /dev/null +++ b/themes/after-dark/docs/content/shortcode/button.md @@ -0,0 +1,149 @@ ++++ +title = "Button" +description = "Add colorful buttons to forms and pages." +categories = ["experience"] +tags = ["controls"] +html_attributes = ["id", "value", "name", "class", "onclick", "tabindex", "target", "disabled", "form"] +custom_attributes = ["type", "text", "isghost", "isblock", "action", "method"] +snippets_used = ["button", "button group", "throbber", "form", "external"] ++++ + +Different types: + +```html +{{}} +{{}} +{{}} +{{}} +{{}} +{{}} +``` + +{{< hackcss-button text="Default" />}} +{{< hackcss-button text="Primary" type="primary" />}} +{{< hackcss-button text="Success" type="success" />}} +{{< hackcss-button text="Info" type="info" />}} +{{< hackcss-button text="Warning" type="warning" />}} +{{< hackcss-button text="Error" type="error" />}} + +Ghost types: + +```html +{{}} +{{}} +{{}} +{{}} +{{}} +{{}} +``` + +{{< hackcss-button isghost="true" text="Default" />}} +{{< hackcss-button isghost="true" text="Primary" type="primary" />}} +{{< hackcss-button isghost="true" text="Success" type="success" />}} +{{< hackcss-button isghost="true" text="Info" type="info" />}} +{{< hackcss-button isghost="true" text="Warning" type="warning" />}} +{{< hackcss-button isghost="true" text="Error" type="error" />}} + +Block-level: + +```html +{{}} +``` + +{{< hackcss-button type="primary" isghost="true" isblock="true" text="Block Level Button" />}} + +Text in body: + +```html +{{}}Default{{< /hackcss-button */>}} +{{}}HTML{{< /hackcss-button */>}} +{{%/* hackcss-button type="success" %}}~~Markdown~~{{% /hackcss-button */%}} +{{}}Hidden comment{{< /hackcss-button */>}} +``` + +{{< hackcss-button >}}Default{{< /hackcss-button >}} +{{< hackcss-button type="primary" >}}HTML{{< /hackcss-button >}} +{{% hackcss-button type="success" %}}~~Markdown~~{{% /hackcss-button %}} +{{< hackcss-button isghost="true" text="Comment" >}}Hidden comment{{< /hackcss-button >}} + +In [Button Group](..button-group): + +```html +{{}} + {{< hackcss-button isghost="true" type="success" text="Left" >}} + {{< hackcss-button isghost="true" type="success" text="Middle" >}} + {{< hackcss-button isghost="true" type="success" text="Right" >}} +{{< /hackcss-buttongroup */>}} +``` + +{{< hackcss-buttongroup >}} + {{< hackcss-button isghost="true" type="success" text="Left" />}} + {{< hackcss-button isghost="true" type="success" text="Middle" />}} + {{< hackcss-button isghost="true" type="success" text="Right" />}} +{{< /hackcss-buttongroup >}} + +Print preview: + +```html +{{}} + + + +{{< /hackcss-button */>}} +``` + +{{< hackcss-button type="info" isghost="true" onclick="print()" >}} + + + +{{< /hackcss-button >}} + +[Loading](../throbber) indication: + +```html +{{}} + Loading… {{< hackcss-throbber >}} +{{< /hackcss-button */>}} +``` + +{{< hackcss-button type="info" isghost="true" >}} + Loading… {{< hackcss-throbber >}} +{{< /hackcss-button >}} + +[External](../external) navigation: + +```html +{{}} + {{< hackcss-button type="success" text="Open" />}} +{{< /external */>}} +``` + +{{< external rel="shortlink" href="https://go.habd.as/mavic-air" >}} + {{< hackcss-button type="success" text="Open" />}} +{{< /external >}} + +[Form](../form) control: + +```html +{{}} + {{< hackcss-buttongroup formactions="true" >}} + {{< hackcss-button text="Custom Action" action="javascript:alert('Custom Alert')" isghost="true" type="primary" />}} + {{< hackcss-button disabled="true" isghost="true" text="Disabled" />}} + {{< /hackcss-buttongroup >}} +{{< /hackcss-form */>}} +``` + +{{< hackcss-form action="javascript:alert('Form Alert')" >}} + {{< hackcss-buttongroup formactions="true" >}} + {{< hackcss-button text="Custom Action" action="javascript:alert('Custom Alert')" isghost="true" type="primary" />}} + {{< hackcss-button disabled="true" isghost="true" text="Disabled" />}} + {{< /hackcss-buttongroup >}} +{{< /hackcss-form >}} + +```html +{{}} +{{}} +``` + +{{< hackcss-form id="owner" action="javascript:alert('Form Alert')" />}} +{{< hackcss-button form="owner" text="Form Action" type="primary" isghost="true" />}} diff --git a/themes/after-dark/docs/content/shortcode/card.md b/themes/after-dark/docs/content/shortcode/card.md new file mode 100644 index 0000000..085265b --- /dev/null +++ b/themes/after-dark/docs/content/shortcode/card.md @@ -0,0 +1,43 @@ ++++ +title = "Card" +description = "Display a bordered container with title area." +categories = ["experience"] +tags = [] +html_attributes = [] +custom_attributes = ["header", "text"] +snippets_used = ["card", "external", "button"] ++++ + +With `header` attribute and plain text: + +```html +{{}} +``` + +{{< hackcss-card header="Title" text="Lorem ipsum dolor sit amet" />}} + +With `header` attribute and formatted text: + +```html +{{}}Haxx0r ipsum true class firewall continue bytes recursively grep Linus Torvalds gobble Trojan horse d00dz baz. Crack bang ssh for int buffer sql fork mailbomb gnu then client salt spoof. Server python error throw sudo fatal while echo dereference concurrently.{{< /hackcss-card */>}} +``` + +{{< hackcss-card header="Hacker Ipsum" >}}Haxx0r ipsum true class firewall continue bytes recursively grep Linus Torvalds gobble Trojan horse d00dz baz. Crack bang ssh for int buffer sql fork mailbomb gnu then client salt spoof. Server python error throw sudo fatal while echo dereference concurrently.{{< /hackcss-card >}} + +With `header` attribute, [External](../external), [Button](../button) and HTML: + +```html +{{}} + + {{< external rel="next" href="https://go.habd.as/mavic-air" >}} + {{< hackcss-button type="primary" text="View on Amazon" isblock="true" />}} + {{< /external >}} +{{< /hackcss-card */>}} +``` + +{{< hackcss-card header="DJI Mavic Air Quadcopter with Remote Controller - Arctic White" >}} + Product image + {{< external rel="next" href="https://go.habd.as/mavic-air" >}} + {{< hackcss-button type="primary" text="View on Amazon" isblock="true" />}} + {{< /external >}} +{{< /hackcss-card >}} diff --git a/themes/after-dark/docs/content/shortcode/cell.md b/themes/after-dark/docs/content/shortcode/cell.md new file mode 100644 index 0000000..9786837 --- /dev/null +++ b/themes/after-dark/docs/content/shortcode/cell.md @@ -0,0 +1,144 @@ ++++ +title = "Cell" +description = "Display a responsive cell inside a grid." +categories = ["experience"] +tags = [] +html_attributes = ["class"] +custom_attributes = [] +snippets_used = ["grid", "card", "button"] ++++ + +Contained by [Grid](../grid) with three columns of equal size: + +{{< highlight html "linenos=inline" >}} +{{}} + {{< hackcss-cell class="-4of12" text="4" />}} + {{< hackcss-cell class="-4of12" text="4" />}} + {{< hackcss-cell class="-4of12" text="4" />}} +{{< /hackcss-grid */>}} +{{< /highlight >}} + +{{< hackcss-grid class="margin-reset" >}} + {{< hackcss-cell class="-4of12" text="4" />}} + {{< hackcss-cell class="-4of12" text="4" />}} + {{< hackcss-cell class="-4of12" text="4" />}} +{{< /hackcss-grid >}} + +With two columns of odd size: + +```html +{{}} + {{< hackcss-cell class="-4of12" text="4" />}} + {{< hackcss-cell class="-8of12" text="8" />}} +{{< /hackcss-grid */>}} +``` + +{{< hackcss-grid class="example" >}} + {{< hackcss-cell class="-4of12" text="4" />}} + {{< hackcss-cell class="-8of12" text="8" />}} +{{< /hackcss-grid >}} + +With 12 columns: + +```html +{{}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} +{{< /hackcss-grid */>}} +``` + +{{< hackcss-grid >}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} +{{< /hackcss-grid >}} + +Enclosing [Cards](../card/) with various [Buttons](../button/) inside: + +```html +{{}} + {{< hackcss-cell class="-4of12" >}} + {{< hackcss-card header="Step 1" >}} + {{< hackcss-button type="primary" isblock="true" isghost="true" >}} + + +   Download + {{< /hackcss-button >}} + {{< /hackcss-card >}} + {{< /hackcss-cell >}} + {{< hackcss-cell class="-4of12" >}} + {{< hackcss-card header="Step 2" >}} + {{< hackcss-button type="info" isblock="true" isghost="true" >}} + + +   Install + {{< /hackcss-button >}} + {{< /hackcss-card >}} + {{< /hackcss-cell >}} + {{< hackcss-cell class="-4of12" >}} + {{< hackcss-card header="Step 3" >}} + {{< hackcss-button type="success" isblock="true" isghost="true" >}} + + + +   Profit + {{< /hackcss-button >}} + {{< /hackcss-card >}} + {{< /hackcss-cell >}} +{{< /hackcss-grid */>}} +``` + +{{< hackcss-grid >}} + {{< hackcss-cell class="-4of12" >}} + {{< hackcss-card header="Step 1" >}} + {{< hackcss-button type="primary" isblock="true" isghost="true" >}} + + +   Download + {{< /hackcss-button >}} + {{< /hackcss-card >}} + {{< /hackcss-cell >}} + {{< hackcss-cell class="-4of12" >}} + {{< hackcss-card header="Step 2" >}} + {{< hackcss-button type="info" isblock="true" isghost="true" >}} + + +   Install + {{< /hackcss-button >}} + {{< /hackcss-card >}} + {{< /hackcss-cell >}} + {{< hackcss-cell class="-4of12" >}} + {{< hackcss-card header="Step 3" >}} + {{< hackcss-button type="success" isblock="true" isghost="true" >}} + + + +   Profit + {{< /hackcss-button >}} + {{< /hackcss-card >}} + {{< /hackcss-cell >}} +{{< /hackcss-grid >}} + +See the {{< external text="hackcss" href="https://hackcss.egoist.moe/" />}} docs for full list of flexbox modifiers available. Reference the following resources for additional help: + +- {{< external "https://philipwalton.github.io/solved-by-flexbox/" "Solved by Flexbox" />}} for cleaner, hack-free CSS +- {{< external "https://www.w3.org/TR/css-flexbox-1/" "CSS Flexible Box Layout Module" />}} for Level 1 spec on W3C diff --git a/themes/after-dark/docs/content/shortcode/external.md b/themes/after-dark/docs/content/shortcode/external.md new file mode 100644 index 0000000..6dd8af1 --- /dev/null +++ b/themes/after-dark/docs/content/shortcode/external.md @@ -0,0 +1,91 @@ ++++ +title = "External" +description = "Create links with external icon and custom behavior." +categories = ["navigation"] +tags = ["links", "security", "privacy"] +html_attributes = ["href", "class", "referrerpolicy", "target", "type", "rel"] +custom_attributes = ["text"] +snippets_used = ["external", "button", "alert"] ++++ + +Basic usage: + +```html +{{}} +{{}} +``` + +{{< external href="https://after-dark.habd.as" text="After Dark" />}} +{{< external href="https://after-dark.habd.as" />}} + +Shorthand usage: + +``` +{{}} +{{}} +{{}} +``` + +{{< external "https://after-dark.habd.as" "After Dark" />}} +{{< external "https://go.habd.as/after-dark" />}} +{{< external href="wss://fs1.habd.as:80" />}} + +{{< hackcss-alert type="info" >}} +Note: URIs such as those using the wss scheme may be considered unsafe by the {{< external "https://golang.org/pkg/html/template/" "Go template package" />}}. Learn more in the package {{< external "https://golang.org/pkg/html/template/#hdr-Security_Model" "Security Model" />}}. +{{< /hackcss-alert >}} + +With external link styling removed: + +```html +{{}} +``` + +{{< external rel="noopener" href="https://keybase.io/jhabdas" />}} + +With internal link opening in a new window: + +```html +{{}} +``` + +{{< external href="/404.html" text="Error Page" />}} + +With structured data type: + +```html +{{}} +``` + +{{< external itemtype="significantLink" href="https://habd.as" />}} + +With site-wide [Referrer Policy](/feature/referrer-policy) overridden: + +```html +{{}} +``` + +{{< external referrerpolicy="unsafe-url" href="http://goo.gl" />}} + +With markdown image and link styling removed: + +```markdown +{{%/* external rel="next" href="https://source.unsplash.com/collection/983219/2160x1440" %}} + ![Example image](https://source.unsplash.com/collection/983219/1080x720 "View Random Image Enlarged") +{{% /external */%}} +``` + +{{% external rel="next" href="https://source.unsplash.com/collection/983219/2160x1440" %}} + ![Example image](https://source.unsplash.com/collection/983219/1080x720 "View Random Image Enlarged") +{{% /external %}} + +With interactive [Button](../button) to run a [Fuzzy Search](/feature/fuzzy-search): + +```html +{{}} + {{< hackcss-button type="primary" text="Search" />}} +{{< /external */>}} +``` + +{{< external rel="search" target="_self" href="/search/?s=button" >}} + {{< hackcss-button type="primary" text="Search" />}} +{{< /external >}} diff --git a/themes/after-dark/docs/content/shortcode/figure.md b/themes/after-dark/docs/content/shortcode/figure.md new file mode 100644 index 0000000..9d9b5f9 --- /dev/null +++ b/themes/after-dark/docs/content/shortcode/figure.md @@ -0,0 +1,36 @@ ++++ +title = "Figure" +description = "Load images progressively with blurry placeholders." +categories = ["experience"] +tags = ["performance", "images", "graphics"] +html_attributes = ["class", "alt", "src"] +custom_attributes = ["lqipsrc", "caption", "link", "linktarget", "attr", "attrlink", "title"] +snippets_used = ["code highlighter"] +notes = [ + "review 'lazy-loading' if this page is modified" +] ++++ + +With progressive image placeholder: + +```html +{{}} +``` + +{{< figure + src="/images/watercolor_pTIyYTqAlF8_w1440h700.jpeg" + alt="Artistic map" + lqipsrc="/images/watercolor_pTIyYTqAlF8_w936h455.jpeg" + title="Map of Bali in Watercolor" + attr="Stamen Design" + attrlink="https://maps.stamen.com/" +>}} + +See {{< external href="https://gohugo.io/content-management/shortcodes/#figure" text="Figures in Hugo" />}} for additional usage. diff --git a/themes/after-dark/docs/content/shortcode/form-group.md b/themes/after-dark/docs/content/shortcode/form-group.md new file mode 100644 index 0000000..494a24d --- /dev/null +++ b/themes/after-dark/docs/content/shortcode/form-group.md @@ -0,0 +1,69 @@ ++++ +title = "Form Group" +description = "Use with Label to visualize control validation states." +categories = ["experience"] +tags = ["form"] +html_attributes = ["disabled", "form", "name", "class", "legend", "body"] +custom_attributes = ["hastextarea", "state"] +snippets_used = ["label", "text input", "text area", "help block"] ++++ + +[Label](../label) states with [Text Input](../text-input): + +```html +{{}} + {{< hackcss-label for="default" text="Default:" />}} + {{< hackcss-textinput id="default" >}} +{{< /hackcss-formgroup */>}} + +{{}} + {{< hackcss-label for="success" text="Success:" />}} + {{< hackcss-textinput id="success" >}} +{{< /hackcss-formgroup */>}} + +{{}} + {{< hackcss-label for="warning" text="Warning:" />}} + {{< hackcss-textinput id="warning" >}} +{{< /hackcss-formgroup */>}} + +{{}} + {{< hackcss-label for="error" text="Error:" />}} + {{< hackcss-textinput id="error" >}} +{{< /hackcss-formgroup */>}} +``` + +{{< hackcss-formgroup >}} + {{< hackcss-label for="default" text="Default:" />}} + {{< hackcss-textinput id="default" >}} +{{< /hackcss-formgroup >}} + +{{< hackcss-formgroup state="success" >}} + {{< hackcss-label for="success" text="Success:" />}} + {{< hackcss-textinput id="success" >}} +{{< /hackcss-formgroup >}} + +{{< hackcss-formgroup state="warning" >}} + {{< hackcss-label for="warning" text="Warning:" />}} + {{< hackcss-textinput id="warning" >}} +{{< /hackcss-formgroup >}} + +{{< hackcss-formgroup state="error" >}} + {{< hackcss-label for="error" text="Error:" />}} + {{< hackcss-textinput id="error" >}} +{{< /hackcss-formgroup >}} + +Disabling [Label](../label) and disabled [Text Area](../text-area) with [Help Block](../help-block): + +```html +{{}} + {{< hackcss-helpblock >}}Sorry! Guestbook offline…{{< /hackcss-helpblock >}} + {{< hackcss-label for="message" text="Message:" />}} + {{< hackcss-textarea id="message" rows="10" >}} +{{< /hackcss-formgroup */>}} +``` + +{{< hackcss-formgroup hastextarea="true" disabled="true" >}} + {{< hackcss-helpblock >}}Sorry! Guestbook offline…{{< /hackcss-helpblock >}} + {{< hackcss-label for="message" text="Message:" />}} + {{< hackcss-textarea id="message" rows="10" >}} +{{< /hackcss-formgroup >}} diff --git a/themes/after-dark/docs/content/shortcode/form.md b/themes/after-dark/docs/content/shortcode/form.md new file mode 100644 index 0000000..646ce62 --- /dev/null +++ b/themes/after-dark/docs/content/shortcode/form.md @@ -0,0 +1,96 @@ ++++ +title = "Form" +description = "Collect, validate and handle user input." +categories = ["experience"] +tags = ["controls"] +html_attributes = ["id", "name", "accept-charset", "action", "enctype", "target", "novalidate", "method", "class", "autocomplete"] +custom_attributes = [] +snippets_used = ["help block", "button", "alert", "throbber", "label", "form group", "form", "text input"] ++++ + +With auto-focused [Text Input](../text-input) requesting a new email address: + +```html +{{}} + {{< hackcss-textinput autofocus="true" type="email" placeholder="Please change your email…" >}} +{{< /hackcss-form */>}} +``` + +{{< hackcss-form autocomplete="disabled" >}} + {{< hackcss-textinput autofocus="true" type="email" placeholder="Please change your email…" >}} +{{< /hackcss-form >}} + +With [Text Input](../text-input) and [Label](../label) inside [Form Group](../form-group) running [Fuzzy Search](/feature/fuzzy-search) in new window: + +```html +{{}} +{{}} + {{< hackcss-label for="query" text="Search query:" />}} + {{< hackcss-textinput id="query" type="search" name="s" form="search" >}} +{{< /hackcss-formgroup */>}} +``` + +{{< hackcss-form id="search" action="/search" target="_blank" />}} +{{< hackcss-formgroup >}} + {{< hackcss-label for="query" text="Search query:" />}} + {{< hackcss-textinput id="query" type="search" name="s" form="search" >}} +{{< /hackcss-formgroup >}} + +Two forms with a [Button](../button) and [Text Input](../text-input) inside [Alert](../alert) with [Throbber](../throbber): + +```html +{{}} + {{< hackcss-form id="throttle" method="post" action="/throttle" />}} + {{< hackcss-form id="choke" novalidate="true" />}} + {{< hackcss-button type="primary" form="choke" text="Doh!" disabled="true" />}} + This one doesn't actually do anything… {{< hackcss-throbber >}} + {{< hackcss-textinput type="hidden" name="speed" value="80" form="throttle" >}} +{{< /hackcss-alert */>}} +``` + +{{< hackcss-alert type="info" >}} + {{< hackcss-form id="throttle" method="post" action="/throttle" />}} + {{< hackcss-form id="choke" novalidate="true" />}} + {{< hackcss-button type="primary" form="choke" text="Doh!" disabled="true" />}} + This one doesn't actually do anything… {{< hackcss-throbber >}} + {{< hackcss-textinput type="hidden" name="speed" value="80" form="throttle" >}} +{{< /hackcss-alert >}} + +With [Form Group](../form-group), [Label](../label), required and validated [Text Input](../text-input) and [Help Block](../help-block): + +```html +{{}} + {{< hackcss-formgroup name="integrity" >}} + {{< hackcss-label for="digest" >}} + SHA-512 Digest: + {{< /hackcss-label >}} + {{< hackcss-textinput + required="true" + autofocus="true" + autocomplete="off" + type="text" id="digest" name="digest" + pattern="^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$" >}} + {{< hackcss-helpblock >}} + Submit with digest to validate installation. + + {{< /hackcss-helpblock >}} + {{< /hackcss-formgroup >}} +{{< /hackcss-form */>}} +``` + +{{< hackcss-form name="validate" action="/validate" >}} + {{< hackcss-formgroup name="integrity" >}} + {{< hackcss-label for="digest" >}} + SHA-512 Digest: + {{< /hackcss-label >}} + {{< hackcss-textinput + required="true" + autocomplete="off" + type="text" id="digest" name="digest" + pattern="^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$" >}} + {{< hackcss-helpblock >}} + Submit with digest to validate installation. + + {{< /hackcss-helpblock >}} + {{< /hackcss-formgroup >}} +{{< /hackcss-form >}} diff --git a/themes/after-dark/docs/content/shortcode/grid.md b/themes/after-dark/docs/content/shortcode/grid.md new file mode 100644 index 0000000..529a211 --- /dev/null +++ b/themes/after-dark/docs/content/shortcode/grid.md @@ -0,0 +1,172 @@ ++++ +title = "Grid" +description = "Display a responsive grid with cells." +categories = ["experience"] +tags = [] +html_attributes = ["class"] +custom_attributes = [] +snippets_used = ["cell", "card", "button"] ++++ + +Containing three [Cell](../cell) of equal size: + +{{< highlight html "linenos=inline" >}} +{{}} + {{< hackcss-cell class="-4of12" text="4" />}} + {{< hackcss-cell class="-4of12" text="4" />}} + {{< hackcss-cell class="-4of12" text="4" />}} +{{< /hackcss-grid */>}} +{{< /highlight >}} + +{{< hackcss-grid class="unset-margin" >}} + {{< hackcss-cell class="-4of12" text="4" />}} + {{< hackcss-cell class="-4of12" text="4" />}} + {{< hackcss-cell class="-4of12" text="4" />}} +{{< /hackcss-grid >}} + +With two columns of odd size: + +```html +{{}} + {{< hackcss-cell class="-4of12" text="4" />}} + {{< hackcss-cell class="-8of12" text="8" />}} +{{< /hackcss-grid */>}} +``` + +{{< hackcss-grid class="example" >}} + {{< hackcss-cell class="-4of12" text="4" />}} + {{< hackcss-cell class="-8of12" text="8" />}} +{{< /hackcss-grid >}} + +With 12 columns: + +```html +{{}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} +{{< /hackcss-grid */>}} +``` + +{{< hackcss-grid >}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} + {{< hackcss-cell class="-1of12" text="1" />}} +{{< /hackcss-grid >}} + +Enclosing [Cards](../card/) with various [Buttons](../button/) inside: + +```html +{{}} + {{< hackcss-cell class="-4of12" >}} + {{< hackcss-card header="Step 1" >}} + {{< hackcss-button type="primary" isblock="true" isghost="true" >}} + + +   Download + {{< /hackcss-button >}} + {{< /hackcss-card >}} + {{< /hackcss-cell >}} + {{< hackcss-cell class="-4of12" >}} + {{< hackcss-card header="Step 2" >}} + {{< hackcss-button type="info" isblock="true" isghost="true" >}} + + +   Install + {{< /hackcss-button >}} + {{< /hackcss-card >}} + {{< /hackcss-cell >}} + {{< hackcss-cell class="-4of12" >}} + {{< hackcss-card header="Step 3" >}} + {{< hackcss-button type="success" isblock="true" isghost="true" >}} + + + +   Profit + {{< /hackcss-button >}} + {{< /hackcss-card >}} + {{< /hackcss-cell >}} +{{< /hackcss-grid */>}} +``` + +{{< hackcss-grid >}} + {{< hackcss-cell class="-4of12" >}} + {{< hackcss-card header="Step 1" >}} + {{< hackcss-button type="primary" isblock="true" isghost="true" >}} + + +   Download + {{< /hackcss-button >}} + {{< /hackcss-card >}} + {{< /hackcss-cell >}} + {{< hackcss-cell class="-4of12" >}} + {{< hackcss-card header="Step 2" >}} + {{< hackcss-button type="info" isblock="true" isghost="true" >}} + + +   Install + {{< /hackcss-button >}} + {{< /hackcss-card >}} + {{< /hackcss-cell >}} + {{< hackcss-cell class="-4of12" >}} + {{< hackcss-card header="Step 3" >}} + {{< hackcss-button type="success" isblock="true" isghost="true" >}} + + + +   Profit + {{< /hackcss-button >}} + {{< /hackcss-card >}} + {{< /hackcss-cell >}} +{{< /hackcss-grid >}} + +Aligning three [SVG Favicons]({{< relref "svg-favicon" >}}) using `-around` modifier: + +```html +{{}} + {{< hackcss-cell class="-2of12" >}} + + {{< /hackcss-cell >}} + {{< hackcss-cell class="-2of12" >}} + + {{< /hackcss-cell >}} + {{< hackcss-cell class="-2of12" >}} + + {{< /hackcss-cell >}} +{{< /hackcss-grid */>}} +``` + +{{< hackcss-grid class="-around" >}} + {{< hackcss-cell class="-2of12" >}} + + {{< /hackcss-cell >}} + {{< hackcss-cell class="-2of12" >}} + + {{< /hackcss-cell >}} + {{< hackcss-cell class="-2of12" >}} + + {{< /hackcss-cell >}} +{{< /hackcss-grid >}} + +See the {{< external text="hackcss" href="https://hackcss.egoist.moe/" />}} docs for full list of flexbox modifiers available. Reference the following resources for additional help: + +- {{< external "https://philipwalton.github.io/solved-by-flexbox/" "Solved by Flexbox" />}} for cleaner, hack-free CSS +- {{< external "https://www.w3.org/TR/css-flexbox-1/" "CSS Flexible Box Layout Module" />}} for Level 1 spec on W3C diff --git a/themes/after-dark/docs/content/shortcode/help-block.md b/themes/after-dark/docs/content/shortcode/help-block.md new file mode 100644 index 0000000..2f9a1ca --- /dev/null +++ b/themes/after-dark/docs/content/shortcode/help-block.md @@ -0,0 +1,40 @@ ++++ +title = "Help Block" +description = "Combine with form controls to guide user input." +categories = ["experience"] +tags = [] +html_attributes = ["class"] +custom_attributes = ["text"] +snippets_used = ["form group", "text input"] ++++ + +Plain or formatted text: + +```html +{{}} +{{}}Italicized HTML Help Block{{< /hackcss-helpblock */>}} +{{%/* hackcss-helpblock %}}**Bold Markdown Help Block**{{% /hackcss-helpblock */%}} +``` +{{< hackcss-helpblock text="Plain text Help Block" />}} +{{< hackcss-helpblock >}}Italicized HTML Help Block{{< /hackcss-helpblock >}} +{{% hackcss-helpblock %}}**Bold Markdown Help Block**{{% /hackcss-helpblock %}} + +Used above and below [Text Input](../text-input) with `class` attribute: + +```html +{{}} + {{< hackcss-helpblock >}} + Enter a secure password below: + {{< /hackcss-helpblock >}} + {{< hackcss-textinput type="password" minlength="27" >}} + {{< hackcss-helpblock class="muted" text="Min. 27 chars" />}} +{{< /hackcss-formgroup */>}} +``` + +{{< hackcss-formgroup >}} + {{< hackcss-helpblock >}} + Enter a secure password below: + {{< /hackcss-helpblock >}} + {{< hackcss-textinput type="password" minlength="27" >}} + {{< hackcss-helpblock class="muted" text="Min. 27 chars" />}} +{{< /hackcss-formgroup >}} diff --git a/themes/after-dark/docs/content/shortcode/label.md b/themes/after-dark/docs/content/shortcode/label.md new file mode 100644 index 0000000..b4393f6 --- /dev/null +++ b/themes/after-dark/docs/content/shortcode/label.md @@ -0,0 +1,53 @@ ++++ +title = "Label" +description = "Provide accessible captions for form controls." +categories = ["experience"] +tags = [] +html_attributes = ["for", "form"] +custom_attributes = ["text"] +snippets_used = ["label", "text input", "form group", "help block"] ++++ + +Explicit label association with [Text Input](../text-input): + +```html +{{}} +{{}} +``` + +{{< hackcss-label for="query" text="Search query:" />}} +{{< hackcss-textinput type="search" id="query" >}} + +Implicit label association using [Text Input](../text-input) and [Help Block](../help-block): + +```html +{{}} + {{< hackcss-label >}} + {{< hackcss-helpblock text="Enter your Associate Tag:" />}} + {{< hackcss-textinput name="AssociateTag" required="true" pattern="^\b\w*\b-20$" placeholder="associate-20" >}} + {{< /hackcss-label >}} +{{< /hackcss-form */>}} +``` + +{{< hackcss-form >}} + {{< hackcss-label >}} + {{< hackcss-helpblock text="Enter your Associate Tag:" />}} + {{< hackcss-textinput name="AssociateTag" required="true" pattern="^\b\w*\b-20$" placeholder="associate-20" >}} + {{< /hackcss-label >}} +{{< /hackcss-form >}} + +Combined with [Form Group](../form-group) to show [Text Input](../text-input) success state: + +```html +{{}} + {{< hackcss-label for="fullname" text="Full Name:" />}} + {{< hackcss-textinput id="fullname" value="Edgar Allan Poe" required="true" >}} +{{< /hackcss-formgroup */>}} +``` + +{{< hackcss-formgroup state="success" >}} + {{< hackcss-label for="fullname" text="Full Name:" />}} + {{< hackcss-textinput id="fullname" value="Edgar Allan Poe" required="true" >}} +{{< /hackcss-formgroup >}} + +See [Form Group](../form-group) for additional control states. diff --git a/themes/after-dark/docs/content/shortcode/progress.md b/themes/after-dark/docs/content/shortcode/progress.md new file mode 100644 index 0000000..ba09991 --- /dev/null +++ b/themes/after-dark/docs/content/shortcode/progress.md @@ -0,0 +1,49 @@ ++++ +title = "Progress" +description = "Show graphical progress bars with completion percentage." +categories = ["experience"] +tags = [] +html_attributes = [] +custom_attributes = ["showpercent", "value", "filltext"] +snippets_used = ["progress", "card", "alert"] ++++ + +Basic usage: + +```html +{{}} +{{}} +{{}} +``` + +{{< hackcss-progress value="40" >}} +{{< hackcss-progress value="30" showpercent="true" >}} +{{< hackcss-progress value="70" showpercent="true" filltext="pemuatan" >}} + +Inside an [Alert](../alert): + +{{< hackcss-alert type="warning" >}} + {{< hackcss-progress value="90" showpercent="true" filltext="Load Average" >}} +{{< /hackcss-alert >}} + +Stacked inside a [Card](../card): + +```html +{{}} + {{< hackcss-progress value="16" showpercent="true" filltext="China – 增值税" >}} + {{< hackcss-progress value="20" showpercent="true" filltext="France – TVA" >}} + {{< hackcss-progress value="10" showpercent="true" filltext="Indonesia – PPN" >}} + {{< hackcss-progress value="8" showpercent="true" filltext="Japan – 消費税" >}} + {{< hackcss-progress value="15" showpercent="true" filltext="New Zealand – GST" >}} + {{< hackcss-progress value="20" showpercent="true" filltext="United Kingdom – VAT" >}} +{{< /hackcss-card */>}} +``` + +{{< hackcss-card header="Value-added Tax by Country" >}} + {{< hackcss-progress value="16" showpercent="true" filltext="China – 增值税" >}} + {{< hackcss-progress value="20" showpercent="true" filltext="France – TVA" >}} + {{< hackcss-progress value="10" showpercent="true" filltext="Indonesia – PPN" >}} + {{< hackcss-progress value="8" showpercent="true" filltext="Japan – 消費税" >}} + {{< hackcss-progress value="15" showpercent="true" filltext="New Zealand – GST" >}} + {{< hackcss-progress value="20" showpercent="true" filltext="United Kingdom – VAT" >}} +{{< /hackcss-card >}} diff --git a/themes/after-dark/docs/content/shortcode/select.md b/themes/after-dark/docs/content/shortcode/select.md new file mode 100644 index 0000000..dc0fe51 --- /dev/null +++ b/themes/after-dark/docs/content/shortcode/select.md @@ -0,0 +1,47 @@ ++++ +title = "Select" +description = "List a group of options in a drop-down menu." +categories = ["experience"] +tags = [] +html_attributes = ["name", "class", "disabled", "form"] +custom_attributes = ["body"] +snippets_used = ["label", "form group"] ++++ + +Basic usage: + +```html +{{}} + + + +{{< /hackcss-select */>}} +``` + +{{< hackcss-select >}} + + + +{{< /hackcss-select >}} + +With [Label](../label) inside [Form Group](../form-group): + +```html +{{}} + {{< hackcss-label for="pool" text="Mining pool:" />}} + {{< hackcss-select id="pool" name="pool" >}} + + + + {{< /hackcss-select >}} +{{< /hackcss-formgroup */>}} +``` + +{{< hackcss-formgroup name="poolgroup" >}} + {{< hackcss-label for="pool" text="Mining pool:" />}} + {{< hackcss-select id="pool" name="pool" >}} + + + + {{< /hackcss-select >}} +{{< /hackcss-formgroup >}} diff --git a/themes/after-dark/docs/content/shortcode/text-area.md b/themes/after-dark/docs/content/shortcode/text-area.md new file mode 100644 index 0000000..4c18942 --- /dev/null +++ b/themes/after-dark/docs/content/shortcode/text-area.md @@ -0,0 +1,47 @@ ++++ +title = "Text Area" +description = "Add a multi-line plain-text editing control." +categories = ["experience"] +tags = ["controls"] +html_attributes = ["id", "name", "class", "autocomplete", "autofocus", "cols", "disabled", "form", "maxlength", "minlength", "name", "placeholder", "readonly", "required", "rows", "spellcheck", "wrap", "tabindex"] +custom_attributes = ["text"] +snippets_used = [] ++++ + +Read-only with prefilled text: + +```html +{{}} +``` + +{{< hackcss-textarea readonly="true" text="Only this and nothing more." >}} + +With spellcheck disabled: + +```html +{{}} +``` + +{{< hackcss-textarea spellcheck="false" >}} + +With 16 columns and hard wrapping enabled: + +```html +{{}} +``` + +{{< hackcss-textarea cols="16" wrap="hard" >}} + +Inside disabled form group with error label and placeholder: + +```html +{{}} + {{< hackcss-label for="message" text="Message:" />}} + {{< hackcss-textarea id="message" placeholder="Guestbook offline…" rows="10" >}} +{{< /hackcss-formgroup */>}} +``` + +{{< hackcss-formgroup hastextarea="true" disabled="true" state="error" >}} + {{< hackcss-label for="message" text="Message:" />}} + {{< hackcss-textarea id="message" placeholder="Guestbook offline…" rows="10" >}} +{{< /hackcss-formgroup >}} diff --git a/themes/after-dark/docs/content/shortcode/text-input.md b/themes/after-dark/docs/content/shortcode/text-input.md new file mode 100644 index 0000000..3830092 --- /dev/null +++ b/themes/after-dark/docs/content/shortcode/text-input.md @@ -0,0 +1,73 @@ ++++ +title = "Text Input" +description = "Add a single-line plain-text editing control." +categories = ["experience"] +tags = ["controls"] +html_attributes = ["id", "name", "class", "autocomplete", "autofocus", "disabled", "form", "formaction", "formmethod", "formtarget", "height", "max", "maxlength", "min", "minlength", "multiple", "pattern", "placeholder", "readonly", "required", "size", "spellcheck", "step", "tabindex", "type", "value", "width"] +custom_attributes = [] +snippets_used = ["text input", "label", "form group", "form", "help block"] ++++ + +Basic usage: + +```html +{{}} +{{}} +{{}} +{{}} +``` + +{{< hackcss-textinput >}} +{{< hackcss-textinput type="password" >}} +{{< hackcss-textinput type="email" placeholder="Please enter your email…" >}} +{{< hackcss-textinput disabled="true" placeholder="Disabled" >}} + +With [Label](../label) and [Help Block](../help-block) in [Form](../form) with custom validation: + +```html +{{}} + {{< hackcss-label >}} + {{< hackcss-helpblock text="Enter your Associate Tag:" />}} + {{< hackcss-textinput name="AssociateTag" required="true" pattern="^\b\w*\b-20$" placeholder="associate-20" >}} + {{< /hackcss-label >}} +{{< /hackcss-form */>}} +``` + +{{< hackcss-form >}} + {{< hackcss-label >}} + {{< hackcss-helpblock text="Enter your Associate Tag:" />}} + {{< hackcss-textinput name="AssociateTag" required="true" pattern="^\b\w*\b-20$" placeholder="associate-20" >}} + {{< /hackcss-label >}} +{{< /hackcss-form >}} + +In [Form Group](../form-group) with warning [Label](../label) and [Help Block](../help-block): + +```html +{{}} + {{< hackcss-label for="key64" text="64-bit PGP key:" />}} + {{< hackcss-textinput type="text" id="key64" >}} + {{< hackcss-helpblock text="In this format: BB73 67EE 9A70 A631" />}} +{{< /hackcss-formgroup */>}} +``` + +{{< hackcss-formgroup state="warning" >}} + {{< hackcss-label for="key64" text="64-bit PGP key:" />}} + {{< hackcss-textinput type="text" id="key64" >}} + {{< hackcss-helpblock text="In this format: BB73 67EE 9A70 A631" />}} +{{< /hackcss-formgroup >}} + +Typed with [Label](../label) in [Form Group](../form-group) targeting [Form](../form) owner: + +```html +{{}} +{{}} + {{< hackcss-label for="query" text="Search query:" />}} + {{< hackcss-textinput type="search" id="query" form="search" >}} +{{< /hackcss-formgroup */>}} +``` + +{{< hackcss-form id="search" action="/search" />}} +{{< hackcss-formgroup >}} + {{< hackcss-label for="query" text="Search query:" />}} + {{< hackcss-textinput type="search" id="query" name="s" form="search" >}} +{{< /hackcss-formgroup >}} diff --git a/themes/after-dark/docs/content/shortcode/throbber.md b/themes/after-dark/docs/content/shortcode/throbber.md new file mode 100644 index 0000000..79e479b --- /dev/null +++ b/themes/after-dark/docs/content/shortcode/throbber.md @@ -0,0 +1,31 @@ ++++ +title = "Throbber" +description = "Display a CSS-only loading indicator." +categories = ["experience"] +tags = [] +html_attributes = [] +custom_attributes = [] +snippets_used = ["throber", "button"] ++++ + +Basic usage: + +```html +{{}} +``` + +{{< hackcss-throbber >}} + +Inside a [Button](../button): + +```html +{{}} + Please wait… {{< hackcss-throbber >}} +{{< /hackcss-button */>}} +``` + +{{< hackcss-button isghost="true" type="info" >}} + Please wait… {{< hackcss-throbber >}} +{{< /hackcss-button >}} + +Customize by creating your own {{< external text="CSS-only loading" href="https://www.pexels.com/blog/css-only-loaders/" />}} indicator. diff --git a/themes/after-dark/docs/content/validate.md b/themes/after-dark/docs/content/validate.md new file mode 100644 index 0000000..f7fd2cd --- /dev/null +++ b/themes/after-dark/docs/content/validate.md @@ -0,0 +1,78 @@ ++++ +title = "Validate Release" +description = "Complete the included form to validate the release." +noindex = true ++++ + +{{< hackcss-form name="validate" action="/validate/" >}} + {{< hackcss-formgroup name="integrity" >}} + {{< hackcss-label for="digest" >}} + SHA-512 Digest: + {{< /hackcss-label >}} + {{< hackcss-textinput + required="true" + autocomplete="off" + spellcheck="false" + type="text" id="digest" name="digest" + pattern="^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$" + placeholder="whUlqT0w6vfvTzd12LpU5kst/Cz3yt9j3ncIHcB4CDQFFiMVPlfX/I+vKl3Y98faqBLlgh6M4pyhiYzZNIPUPA==" + >}} + {{< hackcss-helpblock >}} + Submit with 7.2.1 Release Hash to validate. + + {{< /hackcss-helpblock >}} + {{< /hackcss-formgroup >}} +{{< /hackcss-form >}} + +Valid installations use the [Quick Install](/feature/quick-install) or [Upgrade Script](/feature/upgrade-script) and may be checked offline. See [Release Hashes](/feature/release-hashes) for a more thorough approach to validation. + + diff --git a/themes/after-dark/docs/layouts/extra/list.html b/themes/after-dark/docs/layouts/extra/list.html new file mode 100644 index 0000000..5c655bc --- /dev/null +++ b/themes/after-dark/docs/layouts/extra/list.html @@ -0,0 +1,35 @@ +{{ define "header" }} + {{ partial "masthead.html" . }} +{{ end }} +{{ define "main" }} +
    +

    {{ .Title }}

    + {{ if .Description }} +
    {{ .Description }}
    + {{ end }} +
    + + Extras are companion software packages you may find valuable to augment your workflow. Unlike Modules and Shortcodes extras are ancillary to your website. + + + + + + + + + + + + {{ end }} + + +
    {{ .Title | singularize }}Description
    {{ .Title }}{{ .Description }}
    +{{ end }} +{{ define "footer" }} + {{ partial "pagination.html" . }} + {{ partial "powered-by.html" . }} + {{ partial "cookie-disclaimer.html" . }} +{{ end }} diff --git a/themes/after-dark/docs/layouts/extra/single.html b/themes/after-dark/docs/layouts/extra/single.html new file mode 100644 index 0000000..245853e --- /dev/null +++ b/themes/after-dark/docs/layouts/extra/single.html @@ -0,0 +1,36 @@ +{{ define "title" -}} + {{ .Title }} | {{ .Site.Title }} +{{- end }} +{{ define "header" }} + {{ partial "masthead.html" . }} +{{ end }} +{{ define "main" }} +
    +

    {{ .Title }}

    + {{ if .Description }} +
    {{ .Description }}
    + {{ end }} +
    + {{/* TODO: Allow schema specification by type */}} + {{/* {{ template "_internal/schema.html" . }} */}} + {{ .Content }} +
    +
    +

    + Published + {{ with .Params.categories }} + in {{ delimit (apply (apply (sort .) "partial" "category-link.html" ".") "chomp" ".") ", " " and " }} + {{ end }} + {{ with .Params.features }} + using {{ delimit (apply (apply (sort .) "partial" "feature-link.html" ".") "chomp" ".") ", " " and " }}. + {{ else }} + using basic features. + {{ end }} +

    + {{ partial "post/related-content.html" . }} +
    +{{ end }} +{{ define "footer" }} + {{ partial "powered-by.html" . }} + {{ partial "cookie-disclaimer.html" . }} +{{ end }} diff --git a/themes/after-dark/docs/layouts/feature/list.html b/themes/after-dark/docs/layouts/feature/list.html new file mode 100644 index 0000000..40d6fee --- /dev/null +++ b/themes/after-dark/docs/layouts/feature/list.html @@ -0,0 +1,77 @@ +{{ define "header" }} + {{ partial "masthead.html" . }} +{{ end }} +{{ define "main" }} +
    +

    {{ .Title }}

    + {{ if .Description }} +
    {{ .Description }}
    + {{ end }} +
    + {{ .Content }} + + {{ $scratch := newScratch }} + {{ range .Paginator.Pages }} + {{ $scratch.Add "categories" .Params.categories | first 1 }} + {{ end }} + {{ $categories := $scratch.Get "categories" | uniq }} + + {{ range $categories }} +
    +

    {{ . | title }}

    +
    + {{ range where $.Paginator.Pages "Params.categories" "intersect" (slice .) }} +
    {{ .Title }} +
    {{ .Description }} + {{ end }} +
    +
    + {{ end }} +{{ end }} +{{ define "footer" }} + {{ partial "pagination.html" . }} + {{ partial "powered-by.html" . }} + {{ partial "cookie-disclaimer.html" . }} +{{ end }} diff --git a/themes/after-dark/docs/layouts/feature/single.html b/themes/after-dark/docs/layouts/feature/single.html new file mode 100644 index 0000000..3be07a1 --- /dev/null +++ b/themes/after-dark/docs/layouts/feature/single.html @@ -0,0 +1,36 @@ +{{ define "title" -}} + {{ .Title }} | {{ .Site.Title }} +{{- end }} +{{ define "header" }} + {{ partial "masthead.html" . }} +{{ end }} +{{ define "main" }} +
    +

    {{ .Title }}

    + {{ if .Description }} +
    {{ .Description }}
    + {{ end }} +
    + {{/* TODO: Allow schema specification by type */}} + {{/* {{ template "_internal/schema.html" . }} */}} + {{ .Content }} +
    +
    +

    + {{ .Section | title }} + {{ with .Params.categories }} + in {{ delimit (apply (apply (sort .) "partial" "feature/category-link.html" ".") "chomp" ".") ", " " and " }} + {{ end }} + {{ with .Params.features }} + using {{ delimit (apply (apply (sort .) "partial" "feature-link.html" ".") "chomp" ".") ", " " and " }}. + {{ else }} + using basic features. + {{ end }} +

    + {{ partial "post/related-content.html" . }} +
    +{{ end }} +{{ define "footer" }} + {{ partial "powered-by.html" . }} + {{ partial "cookie-disclaimer.html" . }} +{{ end }} diff --git a/themes/after-dark/docs/layouts/index.html b/themes/after-dark/docs/layouts/index.html new file mode 100644 index 0000000..f2c3926 --- /dev/null +++ b/themes/after-dark/docs/layouts/index.html @@ -0,0 +1,183 @@ +{{ define "title" -}} + {{ .Params.title }} | Semantic Design System for Hugo +{{- end }} +{{ define "header" }} + {{ partial "masthead.html" . }} + +{{ end }} +{{ define "main" }} +
    +

    {{ .Title }}v{{ .Site.Data.npm.latest.version }}

    +

    Semantic Design System for Hugo

    +
    + {{ .Content }} +{{ end }} +{{ define "footer" }} + {{ partial "powered-by.html" . }} + {{ partial "cookie-disclaimer.html" . }} +{{ end }} diff --git a/themes/after-dark/docs/layouts/module/list.html b/themes/after-dark/docs/layouts/module/list.html new file mode 100644 index 0000000..5137159 --- /dev/null +++ b/themes/after-dark/docs/layouts/module/list.html @@ -0,0 +1,42 @@ +{{ define "header" }} + {{ partial "masthead.html" . }} +{{ end }} +{{ define "main" }} +
    +

    {{ .Title }}

    + {{ if .Description }} +
    {{ .Description }}
    + {{ end }} +
    + + {{ .Content }} + + + + + + + + + + + + + + + {{ end }} + + +
    {{ .Title | singularize }}LatestDescription
    {{ .Title }}{{ with .Params.slug }}{{ partial "module-latest.html" (dict "slug" .) }}{{ else }}N/A{{ end }}{{ .Params.summary }}
    +{{ end }} +{{ define "footer" }} + {{ partial "pagination.html" . }} + {{ partial "powered-by.html" . }} + {{ partial "cookie-disclaimer.html" . }} +{{ end }} diff --git a/themes/after-dark/docs/layouts/module/single.html b/themes/after-dark/docs/layouts/module/single.html new file mode 100644 index 0000000..7b85fb5 --- /dev/null +++ b/themes/after-dark/docs/layouts/module/single.html @@ -0,0 +1,52 @@ +{{ define "title" -}} + {{ .Title }} | {{ .Site.Title }} +{{- end }} +{{ define "header" }} + {{ partial "masthead.html" . }} +{{ end }} +{{ define "main" }} +
    +

    {{ .Title }}

    + {{ if .Description }} +
    {{ .Description }}
    + {{ end }} +
    + {{ with .Params.slug }} + {{ partial "module-latest.html" (dict "slug" .) }} + Minimum Required After Dark Version + {{ if eq . "toxic-swamp" }} + Monero icon + {{ end }} + {{ end }} + {{/* TODO: Allow schema specification by type */}} + {{/* {{ template "_internal/schema.html" . }} */}} + {{ .Content }} +
    +
    +

    + Published + {{ with .Params.categories }} + in {{ delimit (apply (apply (sort .) "partial" "category-link.html" ".") "chomp" ".") ", " " and " }} + {{ end }} + {{ with .Params.features }} + using {{ delimit (apply (apply (sort .) "partial" "feature-link.html" ".") "chomp" ".") ", " " and " }}. + {{ else }} + using basic features. + {{ end }} +

    + {{ partial "post/related-content.html" . }} +
    +{{ end }} +{{ define "footer" }} + {{ partial "powered-by.html" . }} + {{ partial "cookie-disclaimer.html" . }} + {{ if in .Page.RelPermalink "toxic-swamp" }} + {{ if eq .Params.slug "toxic-swamp" }} + {{ $config_generator := resources.Get "/js/config-generator.js" }} + + {{ else if in .Page.RelPermalink "configuration" }} + {{ $configuration := resources.Get "/js/configuration.js" }} + + {{ end }} + {{ end }} +{{ end }} diff --git a/themes/after-dark/docs/layouts/partials/category-link.html b/themes/after-dark/docs/layouts/partials/category-link.html new file mode 100644 index 0000000..ab7ec3f --- /dev/null +++ b/themes/after-dark/docs/layouts/partials/category-link.html @@ -0,0 +1 @@ +{{ . | title }} diff --git a/themes/after-dark/docs/layouts/partials/definition-data.html b/themes/after-dark/docs/layouts/partials/definition-data.html new file mode 100644 index 0000000..dd606aa --- /dev/null +++ b/themes/after-dark/docs/layouts/partials/definition-data.html @@ -0,0 +1 @@ +
    {{ . -}} diff --git a/themes/after-dark/docs/layouts/partials/feature-link.html b/themes/after-dark/docs/layouts/partials/feature-link.html new file mode 100644 index 0000000..c28f0f7 --- /dev/null +++ b/themes/after-dark/docs/layouts/partials/feature-link.html @@ -0,0 +1 @@ +{{ . | title }} diff --git a/themes/after-dark/docs/layouts/partials/feature/category-link.html b/themes/after-dark/docs/layouts/partials/feature/category-link.html new file mode 100644 index 0000000..0d70316 --- /dev/null +++ b/themes/after-dark/docs/layouts/partials/feature/category-link.html @@ -0,0 +1 @@ +{{ . | title }} diff --git a/themes/after-dark/docs/layouts/partials/masthead.html b/themes/after-dark/docs/layouts/partials/masthead.html new file mode 100644 index 0000000..86fe796 --- /dev/null +++ b/themes/after-dark/docs/layouts/partials/masthead.html @@ -0,0 +1,30 @@ +{{ $is_section_menu_enabled := ne .Site.Params.show_menu false }} +{{ range $name, $entries := .Site.Menus }} + {{ if or (ne $name "main") (and (eq $name "main") $is_section_menu_enabled) }} + {{ with $.Site.Params.layout.menu }} + {{ $settings := (index . $name) | default dict }} + {{ partial "components/navmenu.html" (dict "name" $name "entries" $entries "settings" $settings "page" $)}} + {{ else }} + {{ partial "components/navmenu.html" (dict "name" $name "entries" $entries "settings" dict "page" $)}} + {{ end }} + {{ end }} +{{ end }} + diff --git a/themes/after-dark/docs/layouts/partials/module-latest.html b/themes/after-dark/docs/layouts/partials/module-latest.html new file mode 100644 index 0000000..659f5fc --- /dev/null +++ b/themes/after-dark/docs/layouts/partials/module-latest.html @@ -0,0 +1 @@ +Latest Version diff --git a/themes/after-dark/docs/layouts/partials/module-link.html b/themes/after-dark/docs/layouts/partials/module-link.html new file mode 100644 index 0000000..8b8b67f --- /dev/null +++ b/themes/after-dark/docs/layouts/partials/module-link.html @@ -0,0 +1 @@ +{{ . | title }} diff --git a/themes/after-dark/docs/layouts/partials/shortcode-link.html b/themes/after-dark/docs/layouts/partials/shortcode-link.html new file mode 100644 index 0000000..b43b558 --- /dev/null +++ b/themes/after-dark/docs/layouts/partials/shortcode-link.html @@ -0,0 +1 @@ +{{ . | title }} diff --git a/themes/after-dark/docs/layouts/shortcode/list.html b/themes/after-dark/docs/layouts/shortcode/list.html new file mode 100644 index 0000000..89653da --- /dev/null +++ b/themes/after-dark/docs/layouts/shortcode/list.html @@ -0,0 +1,36 @@ +{{ define "header" }} + {{ partial "masthead.html" . }} +{{ end }} +{{ define "main" }} +
    +

    {{ .Title }}

    + {{ if .Description }} +
    {{ .Description }}
    + {{ end }} +
    + + + + + + + + + + + + + + {{ end }} + + +
    Add lazy-loaded images, alerts, blockquotes and design great-looking web forms directly from within your content. Dozens of examples provided below:
    {{ .Title | singularize }}Description
    {{ .Title }}{{ .Description }}
    +

    In addition to the above you may {{ partial "components/external.html" (dict "href" "https://gohugo.io/content-management/shortcodes/#use-hugo-s-built-in-shortcodes" "body" "Use Hugo's Built-in Shortcodes") }} as well.

    +{{ end }} +{{ define "footer" }} + {{ partial "pagination.html" . }} + {{ partial "powered-by.html" . }} + {{ partial "cookie-disclaimer.html" . }} +{{ end }} diff --git a/themes/after-dark/docs/layouts/shortcode/single.html b/themes/after-dark/docs/layouts/shortcode/single.html new file mode 100644 index 0000000..07c22f5 --- /dev/null +++ b/themes/after-dark/docs/layouts/shortcode/single.html @@ -0,0 +1,50 @@ +{{ define "title" -}} + {{ .Title }} | {{ .Site.Title }} +{{- end }} +{{ define "header" }} + {{ partial "masthead.html" . }} +{{ end }} +{{ define "main" }} +
    +

    {{ .Title }}

    + {{ if .Description }} +
    {{ .Description }}
    + {{ end }} +
    + {{/* TODO: Allow schema specification by type */}} + {{/* {{ template "_internal/schema.html" . }} */}} + + {{ with .Params.html_attributes }} +
    HTML attributes: {{ delimit (apply (apply (sort .) "partial" "definition-data.html" ".") "chomp" ".") ", " }} + {{ else }} +
    HTML attributes:
    None available + {{ end }} + + {{ with .Params.custom_attributes }} +
    Custom attributes: {{ delimit (apply (apply (sort .) "partial" "definition-data.html" ".") "chomp" ".") ", " }} + {{ else }} +
    Custom attributes:
    None available + {{ end }} + {{ .Content }} +
    +
    +

    + Published + {{ with .Params.categories }} + in {{ delimit (apply (apply (sort .) "partial" "category-link.html" ".") "chomp" ".") ", " " and " }} + {{ end }} + {{ with .Params.snippets_used }} + using {{ delimit (apply (apply (sort .) "partial" "shortcode-link.html" ".") "chomp" ".") ", " " and " }} shortcodes. + {{ else }} + and used alone. + {{ end }} +

    + {{ partial "post/related-content.html" . }} +
    +{{ end }} +{{ define "footer" }} + {{ partial "powered-by.html" . }} + {{ partial "cookie-disclaimer.html" . }} +{{ end }} diff --git a/themes/after-dark/docs/layouts/shortcodes/include.html b/themes/after-dark/docs/layouts/shortcodes/include.html new file mode 100644 index 0000000..b260c6a --- /dev/null +++ b/themes/after-dark/docs/layouts/shortcodes/include.html @@ -0,0 +1,22 @@ + + +{{- $type := .Get "type" }} +{{- $file := .Get "file" }} +{{- if and .IsNamedParams }} + {{- if eq $type "image" }}{{ readFile $file | base64Encode }}{{ end -}} + {{- if eq $type "source" }}{{ readFile $file | safeHTML }}{{ end -}} +{{ else }} + {{- readFile (.Get 0) | safeHTML -}} +{{ end -}} diff --git a/themes/after-dark/docs/resources/_gen/assets/css/css/theme.css_d3f53f09220d597dac26fe7840c31fc9.content b/themes/after-dark/docs/resources/_gen/assets/css/css/theme.css_d3f53f09220d597dac26fe7840c31fc9.content new file mode 100644 index 0000000..395ccb5 --- /dev/null +++ b/themes/after-dark/docs/resources/_gen/assets/css/css/theme.css_d3f53f09220d597dac26fe7840c31fc9.content @@ -0,0 +1 @@ +:root{scroll-behavior:smooth;--screen-size-small: 30em}@keyframes intro{0%{opacity:0}100%{opacity:1}}.blur-up{-webkit-filter:blur(5px);filter:blur(5px);transition:filter 400ms,-webkit-filter 400ms}.blur-up.lazyloaded{-webkit-filter:blur(0);filter:blur(0)}.hack .readmore{margin-bottom:2.2em}.responsive-iframe{position:relative;padding-bottom:56.25%;padding-top:25px;height:0}.responsive-iframe iframe{position:absolute;top:0;left:0;width:100%;height:100%}iframe{border:0}main,footer{animation:intro .3s both;animation-delay:.15s}header:first-of-type+details{margin-top:1rem}footer time[datetime$=M]:before{content:"\2013\0020"}body>footer p.muted{margin-bottom:0}@media only screen and (max-width:768px){footer time[datetime$=M]{display:none}}blockquote cite{display:block}blockquote cite::before{content:"\2014\00A0"}:target{filter:brightness(1.2)}:disabled{cursor:not-allowed}#search-app [v-cloak]{display:none}.hack li ul{margin:0}.hack ol li{padding-left:27px}.main{padding:20px 10px}input.form-control{border-radius:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none}input.form-control,textarea.form-control,select.form-control,.help-block{font-size:initial}@media only screen and (max-width:768px){.help-block{font-size:unset}}html{font-size:13px}.hack .form input,.hack .form textarea,.hack .form button,.hack .form label{font-size:1rem}.hack .alert .highlight:first-of-type .chroma,.hack .card .highlight:first-of-type .chroma{margin-top:unset}.hack .alert .highlight:last-of-type .chroma,.hack .card .highlight:last-of-type .chroma{margin-bottom:unset}.hack blockquote,.hack blockquote:after{line-height:1.5}.hack figure{margin:unset}.hack figure a{border-bottom:none}.hack figure a:hover{background-color:inherit}article [itemprop=description]{margin-bottom:20px;margin-top:20px}article header img{width:100%;border-radius:3px}table td,table th{line-height:inherit}table a{border-bottom:unset}img{max-width:100%}@media only screen and (min-width:768px){html{font-size:16px;margin-left:calc(100vw - 100%)}.container{max-width:50rem}} \ No newline at end of file diff --git a/themes/after-dark/docs/resources/_gen/assets/css/css/theme.css_d3f53f09220d597dac26fe7840c31fc9.json b/themes/after-dark/docs/resources/_gen/assets/css/css/theme.css_d3f53f09220d597dac26fe7840c31fc9.json new file mode 100644 index 0000000..3317ead --- /dev/null +++ b/themes/after-dark/docs/resources/_gen/assets/css/css/theme.css_d3f53f09220d597dac26fe7840c31fc9.json @@ -0,0 +1 @@ +{"Target":"css/theme.min.css","MediaType":"text/css","Data":{}} \ No newline at end of file diff --git a/themes/after-dark/docs/resources/_gen/assets/js/js/baseof.js_9c5a2cf466e0b868fa5611447c9ddc0a.content b/themes/after-dark/docs/resources/_gen/assets/js/js/baseof.js_9c5a2cf466e0b868fa5611447c9ddc0a.content new file mode 100644 index 0000000..bfe3995 --- /dev/null +++ b/themes/after-dark/docs/resources/_gen/assets/js/js/baseof.js_9c5a2cf466e0b868fa5611447c9ddc0a.content @@ -0,0 +1 @@ +fetchInject(["/js/lazysizes.min.js"]); diff --git a/themes/after-dark/docs/resources/_gen/assets/js/js/baseof.js_9c5a2cf466e0b868fa5611447c9ddc0a.json b/themes/after-dark/docs/resources/_gen/assets/js/js/baseof.js_9c5a2cf466e0b868fa5611447c9ddc0a.json new file mode 100644 index 0000000..878f938 --- /dev/null +++ b/themes/after-dark/docs/resources/_gen/assets/js/js/baseof.js_9c5a2cf466e0b868fa5611447c9ddc0a.json @@ -0,0 +1 @@ +{"Target":"baseof.867a3b59e4c87220894a383f9b28f22b7d07624adc182570a388384a951a96faecdebda54bb6cf3484306c2372a4a6e0ec1675b00e00b069e4e86ab834e2a918.js","MediaType":"application/javascript","Data":{"Integrity":"sha512-hno7WeTIciCJSjg/myjyK30HYkrcGCVwo4g4SpUalvrs3r2lS7bPNIQwbCNypKbg7BZ1sA4AsGnk6Gq4NOKpGA=="}} \ No newline at end of file diff --git a/themes/after-dark/docs/resources/_gen/assets/js/js/baseof.js_fba388cd09048faa65b45690d0735118.content b/themes/after-dark/docs/resources/_gen/assets/js/js/baseof.js_fba388cd09048faa65b45690d0735118.content new file mode 100644 index 0000000..bfe3995 --- /dev/null +++ b/themes/after-dark/docs/resources/_gen/assets/js/js/baseof.js_fba388cd09048faa65b45690d0735118.content @@ -0,0 +1 @@ +fetchInject(["/js/lazysizes.min.js"]); diff --git a/themes/after-dark/docs/resources/_gen/assets/js/js/baseof.js_fba388cd09048faa65b45690d0735118.json b/themes/after-dark/docs/resources/_gen/assets/js/js/baseof.js_fba388cd09048faa65b45690d0735118.json new file mode 100644 index 0000000..94fd25b --- /dev/null +++ b/themes/after-dark/docs/resources/_gen/assets/js/js/baseof.js_fba388cd09048faa65b45690d0735118.json @@ -0,0 +1 @@ +{"Target":"baseof.js","MediaType":"application/javascript","Data":{}} \ No newline at end of file diff --git a/themes/after-dark/docs/resources/_gen/assets/js/js/config-generator.js_dd4aa44ecb2f6765bf6d6d921265e95a.content b/themes/after-dark/docs/resources/_gen/assets/js/js/config-generator.js_dd4aa44ecb2f6765bf6d6d921265e95a.content new file mode 100644 index 0000000..edf9cee --- /dev/null +++ b/themes/after-dark/docs/resources/_gen/assets/js/js/config-generator.js_dd4aa44ecb2f6765bf6d6d921265e95a.content @@ -0,0 +1,38 @@ +(function (window, document, undefined) { + 'use strict'; + const form = document.forms.generator; + form.reset(); + const isOnlineHelp = document.URL.includes('localhost:1414'); + if (!isOnlineHelp) return; + form.querySelector('.js-useonlinehelp').style.display = 'none'; + if (window.navigator.onLine) { + form.querySelector('.js-disconnect').style.display = 'block'; + } + const activate = () => { + form.querySelector('.js-disconnect').style.display = 'block'; + form.generate.disabled = true; + form.address.disabled = true; + form.address.value = ''; + form.generate.classList.add('muted'); + }; + const deactivate = () => { + form.querySelector('.js-disconnect').style.display = 'none'; + form.generate.disabled = false; + form.address.disabled = false; + form.generate.classList.remove('muted'); + }; + window.addEventListener('online', activate); + window.addEventListener('offline', deactivate); + if (!window.navigator.onLine) deactivate(); + form.addEventListener('submit', evt => { + evt.preventDefault(); + const isLocal = document.location.host.includes('localhost'); + const hasSameOrigin = form.action.includes(document.location.origin); + if (isLocal && hasSameOrigin) { + evt.target.submit(); + } else { + form.querySelector('.js-usesameorigin').style.display = 'block'; + deactivate(); + } + }) +})(window, document); diff --git a/themes/after-dark/docs/resources/_gen/assets/js/js/config-generator.js_dd4aa44ecb2f6765bf6d6d921265e95a.json b/themes/after-dark/docs/resources/_gen/assets/js/js/config-generator.js_dd4aa44ecb2f6765bf6d6d921265e95a.json new file mode 100644 index 0000000..a9d3293 --- /dev/null +++ b/themes/after-dark/docs/resources/_gen/assets/js/js/config-generator.js_dd4aa44ecb2f6765bf6d6d921265e95a.json @@ -0,0 +1 @@ +{"Target":"js/config-generator.4ca56e2e5093f3e6b40a1a5ae8fc3772586ef5f859f493b381b960c506944153ffcf895f3e7addc960ce82e70e4674b6a9aa56bbf88f546d9dd32c32187d8d8c.js","MediaType":"application/javascript","Data":{"Integrity":"sha512-TKVuLlCT8+a0Chpa6Pw3clhu9fhZ9JOzgblgxQaUQVP/z4lfPnrdyWDOgucORnS2qapWu/iPVG2d0ywyGH2NjA=="}} \ No newline at end of file diff --git a/themes/after-dark/docs/resources/_gen/assets/js/js/configuration.js_dd4aa44ecb2f6765bf6d6d921265e95a.content b/themes/after-dark/docs/resources/_gen/assets/js/js/configuration.js_dd4aa44ecb2f6765bf6d6d921265e95a.content new file mode 100644 index 0000000..3386357 --- /dev/null +++ b/themes/after-dark/docs/resources/_gen/assets/js/js/configuration.js_dd4aa44ecb2f6765bf6d6d921265e95a.content @@ -0,0 +1,32 @@ +(function (window, document, undefined) { + 'use strict'; + const isOnlineHelp = document.URL.includes('localhost:1414'); + if (!isOnlineHelp) return; + if (!document.location.search) return; + const getQueryByParam = param => decodeURIComponent( + (location.search.split(param + '=')[1] || '').split('&')[0] + ).replace(/\+/g, ' '); + const set = (from, to) => { + document.body.innerHTML = document.body.innerHTML.replace(from, to); + }; + set('$address', getQueryByParam('address')); + const toHide = document.querySelectorAll('.js-tohide'); + const toShow = document.querySelectorAll('.js-toshow'); + toHide.forEach(el => el.style.display = 'none'); + toShow.forEach(el => el.style.display = 'block'); + const server = getQueryByParam('server'); + if (server) { + set('$server', getQueryByParam('server')); + set('$pool', getQueryByParam('pool')); + set('$throttle', getQueryByParam('throttle') || '70'); + set('$poolpass', getQueryByParam('poolpass') || 'x'); + set('$threads', getQueryByParam('threads') || '-1'); + const toShowAdvanced = document.querySelectorAll('.js-showadvanced'); + const toHideAdvanced = document.querySelectorAll('.js-hideadvanced'); + toShowAdvanced.forEach(el => el.style.display = 'block'); + toHideAdvanced.forEach(el => el.style.display = 'none'); + } + window.history.replaceState( + {}, null, `${window.location.origin}${window.location.pathname}` + ); +})(window, document); diff --git a/themes/after-dark/docs/resources/_gen/assets/js/js/configuration.js_dd4aa44ecb2f6765bf6d6d921265e95a.json b/themes/after-dark/docs/resources/_gen/assets/js/js/configuration.js_dd4aa44ecb2f6765bf6d6d921265e95a.json new file mode 100644 index 0000000..f1f322c --- /dev/null +++ b/themes/after-dark/docs/resources/_gen/assets/js/js/configuration.js_dd4aa44ecb2f6765bf6d6d921265e95a.json @@ -0,0 +1 @@ +{"Target":"js/configuration.65c2429a3a70a03c556eb3fa88e12c9890bb7c2e88d27aba6d23a38db1a4adb484ee6b5bd3ae3b32841af966f16bc7e44d4aa151891f558fe876e6a74a4954f6.js","MediaType":"application/javascript","Data":{"Integrity":"sha512-ZcJCmjpwoDxVbrP6iOEsmJC7fC6I0nq6bSOjjbGkrbSE7mtb0647MoQa+Wbxa8fkTUqhUYkfVY/oduanSklU9g=="}} \ No newline at end of file diff --git a/themes/after-dark/docs/resources/_gen/assets/js/js/search.js_478ce9460ab1690b65f445ec194033b7.content b/themes/after-dark/docs/resources/_gen/assets/js/js/search.js_478ce9460ab1690b65f445ec194033b7.content new file mode 100644 index 0000000..16713c8 --- /dev/null +++ b/themes/after-dark/docs/resources/_gen/assets/js/js/search.js_478ce9460ab1690b65f445ec194033b7.content @@ -0,0 +1,119 @@ +fetchInject([ + "/js/vue.min.js", + "/js/lodash.custom.min.js", + "/js/fuse.min.js", + "/js/mark.min.js" +]).then(() => { + (function (window, document, undefined) { + 'use strict'; + + const getQueryByParam = param => decodeURIComponent( + (location.search.split(param + '=')[1] || '').split('&')[0] + ).replace(/\+/g, ' '); + + const queryParam = 's'; + const selectors = { + appContainer: '#search-app', + resultContainer: '#search-results', + searchInput: '#query' + }; + + const fuseOpts = { + shouldSort: true, + tokenize: true, + matchAllTokens: true, + includeScore: true, + includeMatches: true, + keys: [ + { name: "title", weight: 0.8 }, + { name: "contents", weight: 0.5 }, + { name: "tags", weight: 0.3 }, + { name: "categories", weight: 0.3 } + ] + }; + + const getSearchInput = () => document.querySelector(selectors.searchInput); + const focusSearchInput = () => getSearchInput().focus(); + const searchQuery = getSearchInput().value = getQueryByParam(queryParam); + + const fuse = new Fuse([], fuseOpts); + window.fetch('/index.json').then(response => { + response.text().then(searchData => { + fuse.setCollection(JSON.parse(searchData)); + searchQuery && search(searchQuery); + }); + }); + + const getUrl = (query) => { + const encodedQuery = encodeURIComponent(query); + const url = "/search/"; + return (encodedQuery) + ? `${url}?${queryParam}=${encodedQuery}` + : url; + }; + + let mark = new Mark( + document.querySelector( + selectors.resultContainer + ) + ); + + const app = new Vue({ + delimiters: ['{', '}'], + el: selectors.appContainer, + data: { + fuse: null, + results: [], + query: getQueryByParam(queryParam), + resultsForSearch: getQueryByParam(queryParam) + }, + mounted () { + this.fuse = fuse; + window.onpopstate = (evt) => { + this.query = evt.state.query; + }; + document.onkeyup = function (evt) { + evt.key === 's' && focusSearchInput(); + } + focusSearchInput(); + }, + watch: { + query () { + this.executeSearch(); + window.history.replaceState( + {query: this.query}, + null, + getUrl(this.query) + ); + } + }, + beforeUpdate: function () { + mark.unmark(); + }, + updated: function () { + this.$nextTick(function () { + mark = new Mark( + document.querySelector( + selectors.resultContainer + ) + ) + mark.mark(this.query.trim()); + }) + }, + methods: { + executeSearch: _.debounce(function () { + const trimmedQuery = this.query.trim(); + this.resultsForSearch = trimmedQuery; + this.results = (trimmedQuery) + ? this.fuse.search(trimmedQuery) + : []; + }, 250) + } + }); + + const search = query => { + app.results = fuse.search(query); + }; + + })(window, document); +}); diff --git a/themes/after-dark/docs/resources/_gen/assets/js/js/search.js_478ce9460ab1690b65f445ec194033b7.json b/themes/after-dark/docs/resources/_gen/assets/js/js/search.js_478ce9460ab1690b65f445ec194033b7.json new file mode 100644 index 0000000..e9e7dde --- /dev/null +++ b/themes/after-dark/docs/resources/_gen/assets/js/js/search.js_478ce9460ab1690b65f445ec194033b7.json @@ -0,0 +1 @@ +{"Target":"search.0716f2f738659f865cdad84603513d09d4f8a9c098e764b13bf481c401faa902ba2caebfd601aad71277533d125d3b0f48beaabb37bb6d84141ebf78c494bb8d.js","MediaType":"application/javascript","Data":{"Integrity":"sha512-Bxby9zhln4Zc2thGA1E9CdT4qcCY52SxO/SBxAH6qQK6LK6/1gGq1xJ3Uz0SXTsPSL6quze7bYQUHr94xJS7jQ=="}} \ No newline at end of file diff --git a/themes/after-dark/docs/resources/_gen/assets/js/js/search.js_a6b16e383456ca836455be60c03cf29c.content b/themes/after-dark/docs/resources/_gen/assets/js/js/search.js_a6b16e383456ca836455be60c03cf29c.content new file mode 100644 index 0000000..16713c8 --- /dev/null +++ b/themes/after-dark/docs/resources/_gen/assets/js/js/search.js_a6b16e383456ca836455be60c03cf29c.content @@ -0,0 +1,119 @@ +fetchInject([ + "/js/vue.min.js", + "/js/lodash.custom.min.js", + "/js/fuse.min.js", + "/js/mark.min.js" +]).then(() => { + (function (window, document, undefined) { + 'use strict'; + + const getQueryByParam = param => decodeURIComponent( + (location.search.split(param + '=')[1] || '').split('&')[0] + ).replace(/\+/g, ' '); + + const queryParam = 's'; + const selectors = { + appContainer: '#search-app', + resultContainer: '#search-results', + searchInput: '#query' + }; + + const fuseOpts = { + shouldSort: true, + tokenize: true, + matchAllTokens: true, + includeScore: true, + includeMatches: true, + keys: [ + { name: "title", weight: 0.8 }, + { name: "contents", weight: 0.5 }, + { name: "tags", weight: 0.3 }, + { name: "categories", weight: 0.3 } + ] + }; + + const getSearchInput = () => document.querySelector(selectors.searchInput); + const focusSearchInput = () => getSearchInput().focus(); + const searchQuery = getSearchInput().value = getQueryByParam(queryParam); + + const fuse = new Fuse([], fuseOpts); + window.fetch('/index.json').then(response => { + response.text().then(searchData => { + fuse.setCollection(JSON.parse(searchData)); + searchQuery && search(searchQuery); + }); + }); + + const getUrl = (query) => { + const encodedQuery = encodeURIComponent(query); + const url = "/search/"; + return (encodedQuery) + ? `${url}?${queryParam}=${encodedQuery}` + : url; + }; + + let mark = new Mark( + document.querySelector( + selectors.resultContainer + ) + ); + + const app = new Vue({ + delimiters: ['{', '}'], + el: selectors.appContainer, + data: { + fuse: null, + results: [], + query: getQueryByParam(queryParam), + resultsForSearch: getQueryByParam(queryParam) + }, + mounted () { + this.fuse = fuse; + window.onpopstate = (evt) => { + this.query = evt.state.query; + }; + document.onkeyup = function (evt) { + evt.key === 's' && focusSearchInput(); + } + focusSearchInput(); + }, + watch: { + query () { + this.executeSearch(); + window.history.replaceState( + {query: this.query}, + null, + getUrl(this.query) + ); + } + }, + beforeUpdate: function () { + mark.unmark(); + }, + updated: function () { + this.$nextTick(function () { + mark = new Mark( + document.querySelector( + selectors.resultContainer + ) + ) + mark.mark(this.query.trim()); + }) + }, + methods: { + executeSearch: _.debounce(function () { + const trimmedQuery = this.query.trim(); + this.resultsForSearch = trimmedQuery; + this.results = (trimmedQuery) + ? this.fuse.search(trimmedQuery) + : []; + }, 250) + } + }); + + const search = query => { + app.results = fuse.search(query); + }; + + })(window, document); +}); diff --git a/themes/after-dark/docs/resources/_gen/assets/js/js/search.js_a6b16e383456ca836455be60c03cf29c.json b/themes/after-dark/docs/resources/_gen/assets/js/js/search.js_a6b16e383456ca836455be60c03cf29c.json new file mode 100644 index 0000000..1bcb351 --- /dev/null +++ b/themes/after-dark/docs/resources/_gen/assets/js/js/search.js_a6b16e383456ca836455be60c03cf29c.json @@ -0,0 +1 @@ +{"Target":"search.js","MediaType":"application/javascript","Data":{}} \ No newline at end of file diff --git a/themes/after-dark/docs/resources/_gen/assets/js/js/vendor/fetch-inject.min.js_dd4aa44ecb2f6765bf6d6d921265e95a.content b/themes/after-dark/docs/resources/_gen/assets/js/js/vendor/fetch-inject.min.js_dd4aa44ecb2f6765bf6d6d921265e95a.content new file mode 100644 index 0000000..cc9024f --- /dev/null +++ b/themes/after-dark/docs/resources/_gen/assets/js/js/vendor/fetch-inject.min.js_dd4aa44ecb2f6765bf6d6d921265e95a.content @@ -0,0 +1,2 @@ +/*! Fetch Inject v2.0.2 | Copyright (C) 2017–2018 Josh Habdas | @license Zlib */ +var fetchInject=function(){"use strict";const e=function(e,t,r,n,o,c,i){c=t.createElement(r),i=t.getElementsByTagName(r)[0],c.appendChild(t.createTextNode(n.text)),c.onload=o(n),i?i.parentNode.insertBefore(c,i):t.head.appendChild(c)};return function(t,r){if(!arguments.length)return Promise.reject(new ReferenceError("Failed to execute 'fetchInject': 1 argument required but only 0 present."));if(arguments[0]&&arguments[0].constructor!==Array)return Promise.reject(new TypeError("Failed to execute 'fetchInject': argument 1 must be of type 'Array'."));if(arguments[1]&&arguments[1].constructor!==Promise)return Promise.reject(new TypeError("Failed to execute 'fetchInject': argument 2 must be of type 'Promise'."));const n=[],o=r?[].concat(r):[],c=[];return t.forEach(e=>o.push(window.fetch(e).then(e=>[e.clone().text(),e.blob()]).then(e=>Promise.all(e).then(e=>{n.push({text:e[0],blob:e[1]})})))),Promise.all(o).then(()=>(n.forEach(t=>{c.push({then:r=>{t.blob.type.includes("text/css")?e(window,document,"style",t,r):e(window,document,"script",t,r)}})}),Promise.all(c)))}}(); diff --git a/themes/after-dark/docs/resources/_gen/assets/js/js/vendor/fetch-inject.min.js_dd4aa44ecb2f6765bf6d6d921265e95a.json b/themes/after-dark/docs/resources/_gen/assets/js/js/vendor/fetch-inject.min.js_dd4aa44ecb2f6765bf6d6d921265e95a.json new file mode 100644 index 0000000..8111c86 --- /dev/null +++ b/themes/after-dark/docs/resources/_gen/assets/js/js/vendor/fetch-inject.min.js_dd4aa44ecb2f6765bf6d6d921265e95a.json @@ -0,0 +1 @@ +{"Target":"js/vendor/fetch-inject.min.271fcca93c585aa1dda0e90722d4492590af14384444faf9806e08e444aedd5f81810c8043ac177ddb06ce1ce64f4cb2be4016cf68dbae7f35abdd114494d24e.js","MediaType":"application/javascript","Data":{"Integrity":"sha512-Jx/MqTxYWqHdoOkHItRJJZCvFDhERPr5gG4I5ESu3V+BgQyAQ6wXfdsGzhzmT0yyvkAWz2jbrn81q90RRJTSTg=="}} \ No newline at end of file diff --git a/themes/after-dark/docs/s3_website.yml b/themes/after-dark/docs/s3_website.yml new file mode 100644 index 0000000..246a371 --- /dev/null +++ b/themes/after-dark/docs/s3_website.yml @@ -0,0 +1,66 @@ +s3_id: <%= ENV['S3_ACCESS_KEY_ID'] %> +s3_secret: <%= ENV['S3_SECRET_KEY'] %> +s3_bucket: after-dark.habd.as + +# Below are examples of all the available configurations. +# See README for more detailed info on each of them. + +site: public + +index_document: index.html +error_document: 404.html + +# cache static assets for 20 years +max_age: + "js/*": 630720000 + "fonts/*": 630720000 + "images/*": 630720000 + "*": 300 + +gzip: + - .html + - .js + - .css + - .xml +# gzip_zopfli: true + +# See http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region for valid endpoints +# s3_endpoint: ap-northeast-1 + +# ignore_on_server: that_folder_of_stuff_i_dont_keep_locally + +# exclude_from_upload: +# - those_folders_of_stuff +# - i_wouldnt_want_to_upload + +s3_reduced_redundancy: true + +cloudfront_distribution_id: <%= ENV['CLOUDFRONT_DISTRIBUTION_ID'] %> + +cloudfront_distribution_config: + default_cache_behavior: + min_ttl: <%= 60 * 60 * 24 %> + http_version: http2 + aliases: + quantity: 1 + items: + - after-dark.habd.as + +# cloudfront_invalidate_root: true + +cloudfront_wildcard_invalidation: true + +# concurrency_level: 5 + +# redirects: +# index.php: / +# about.php: about.html +# music-files/promo.mp4: http://www.youtube.com/watch?v=dQw4w9WgXcQ + +# routing_rules: +# - condition: +# key_prefix_equals: blog/some_path +# redirect: +# host_name: blog.example.com +# replace_key_prefix_with: some_new_path/ +# http_redirect_code: 301 diff --git a/themes/after-dark/docs/static/images/addon-high-tea_1440x900-fs8.png b/themes/after-dark/docs/static/images/addon-high-tea_1440x900-fs8.png new file mode 100644 index 0000000..5060620 Binary files /dev/null and b/themes/after-dark/docs/static/images/addon-high-tea_1440x900-fs8.png differ diff --git a/themes/after-dark/docs/static/images/addon-high-tea_960x600-fs8.png b/themes/after-dark/docs/static/images/addon-high-tea_960x600-fs8.png new file mode 100644 index 0000000..7a43663 Binary files /dev/null and b/themes/after-dark/docs/static/images/addon-high-tea_960x600-fs8.png differ diff --git a/themes/after-dark/docs/static/images/instant-view-fs8.png b/themes/after-dark/docs/static/images/instant-view-fs8.png new file mode 100644 index 0000000..c3c9317 Binary files /dev/null and b/themes/after-dark/docs/static/images/instant-view-fs8.png differ diff --git a/themes/after-dark/docs/static/images/minimal-mac_2400x1800-fs8.png b/themes/after-dark/docs/static/images/minimal-mac_2400x1800-fs8.png new file mode 100644 index 0000000..3668396 Binary files /dev/null and b/themes/after-dark/docs/static/images/minimal-mac_2400x1800-fs8.png differ diff --git a/themes/after-dark/docs/static/images/minimal-mac_800x600-fs8.png b/themes/after-dark/docs/static/images/minimal-mac_800x600-fs8.png new file mode 100644 index 0000000..1bdf701 Binary files /dev/null and b/themes/after-dark/docs/static/images/minimal-mac_800x600-fs8.png differ diff --git a/themes/after-dark/docs/static/images/quick-install-fs8.png b/themes/after-dark/docs/static/images/quick-install-fs8.png new file mode 100644 index 0000000..92f3fb4 Binary files /dev/null and b/themes/after-dark/docs/static/images/quick-install-fs8.png differ diff --git a/themes/after-dark/docs/static/images/quick-install.png b/themes/after-dark/docs/static/images/quick-install.png new file mode 100644 index 0000000..78dcf20 Binary files /dev/null and b/themes/after-dark/docs/static/images/quick-install.png differ diff --git a/themes/after-dark/docs/static/images/screenshots/after-dark-v6.15.0-homepage-fs8.png b/themes/after-dark/docs/static/images/screenshots/after-dark-v6.15.0-homepage-fs8.png new file mode 100644 index 0000000..3dd7153 Binary files /dev/null and b/themes/after-dark/docs/static/images/screenshots/after-dark-v6.15.0-homepage-fs8.png differ diff --git a/themes/after-dark/docs/static/images/screenshots/extra-high-tea-fs8.png b/themes/after-dark/docs/static/images/screenshots/extra-high-tea-fs8.png new file mode 100644 index 0000000..0fbe89c Binary files /dev/null and b/themes/after-dark/docs/static/images/screenshots/extra-high-tea-fs8.png differ diff --git a/themes/after-dark/docs/static/images/screenshots/feature-error-page-fs8.png b/themes/after-dark/docs/static/images/screenshots/feature-error-page-fs8.png new file mode 100644 index 0000000..6ca95f9 Binary files /dev/null and b/themes/after-dark/docs/static/images/screenshots/feature-error-page-fs8.png differ diff --git a/themes/after-dark/docs/static/images/screenshots/feature-online-help-fs8.png b/themes/after-dark/docs/static/images/screenshots/feature-online-help-fs8.png new file mode 100644 index 0000000..211fc0c Binary files /dev/null and b/themes/after-dark/docs/static/images/screenshots/feature-online-help-fs8.png differ diff --git a/themes/after-dark/docs/static/images/screenshots/module-toxic-swamp-fs8.png b/themes/after-dark/docs/static/images/screenshots/module-toxic-swamp-fs8.png new file mode 100644 index 0000000..b74629b Binary files /dev/null and b/themes/after-dark/docs/static/images/screenshots/module-toxic-swamp-fs8.png differ diff --git a/themes/after-dark/docs/static/images/screenshots/module-voyeur-analytics-fs8.png b/themes/after-dark/docs/static/images/screenshots/module-voyeur-analytics-fs8.png new file mode 100644 index 0000000..d59fbd0 Binary files /dev/null and b/themes/after-dark/docs/static/images/screenshots/module-voyeur-analytics-fs8.png differ diff --git a/themes/after-dark/docs/static/images/screenshots/monero-ocean-dashboard-fs8.png b/themes/after-dark/docs/static/images/screenshots/monero-ocean-dashboard-fs8.png new file mode 100644 index 0000000..ae396e9 Binary files /dev/null and b/themes/after-dark/docs/static/images/screenshots/monero-ocean-dashboard-fs8.png differ diff --git a/themes/after-dark/docs/static/images/screenshots/shortcode-button-fs8.png b/themes/after-dark/docs/static/images/screenshots/shortcode-button-fs8.png new file mode 100644 index 0000000..8ac5329 Binary files /dev/null and b/themes/after-dark/docs/static/images/screenshots/shortcode-button-fs8.png differ diff --git a/themes/after-dark/docs/static/images/social-awareness-fs8.png b/themes/after-dark/docs/static/images/social-awareness-fs8.png new file mode 100644 index 0000000..86e86fb Binary files /dev/null and b/themes/after-dark/docs/static/images/social-awareness-fs8.png differ diff --git a/themes/after-dark/docs/static/images/watercolor_pTIyYTqAlF8_w1440h700.jpeg b/themes/after-dark/docs/static/images/watercolor_pTIyYTqAlF8_w1440h700.jpeg new file mode 100644 index 0000000..e907587 Binary files /dev/null and b/themes/after-dark/docs/static/images/watercolor_pTIyYTqAlF8_w1440h700.jpeg differ diff --git a/themes/after-dark/docs/static/images/watercolor_pTIyYTqAlF8_w936h455.jpeg b/themes/after-dark/docs/static/images/watercolor_pTIyYTqAlF8_w936h455.jpeg new file mode 100644 index 0000000..abce6f0 Binary files /dev/null and b/themes/after-dark/docs/static/images/watercolor_pTIyYTqAlF8_w936h455.jpeg differ diff --git a/themes/after-dark/docs/static/images/wtfpl.svg b/themes/after-dark/docs/static/images/wtfpl.svg new file mode 100644 index 0000000..6ea1be1 --- /dev/null +++ b/themes/after-dark/docs/static/images/wtfpl.svg @@ -0,0 +1,15 @@ + + + + + image/svg+xml + + + + + + + + + + diff --git a/themes/after-dark/docs/themes/after-dark b/themes/after-dark/docs/themes/after-dark new file mode 120000 index 0000000..c25bddb --- /dev/null +++ b/themes/after-dark/docs/themes/after-dark @@ -0,0 +1 @@ +../.. \ No newline at end of file diff --git a/themes/after-dark/layouts/404.html b/themes/after-dark/layouts/404.html new file mode 100644 index 0000000..68ab7bd --- /dev/null +++ b/themes/after-dark/layouts/404.html @@ -0,0 +1,94 @@ + + {{ .Hugo.Generator }} + + + + 404 Error | {{ .Site.Title }} + {{ partial "head/favicon.html" . }} + {{ partial "meta/theme-color.html" . }} + + + + +
    + +

    404

    +
    +
    + + diff --git a/themes/after-dark/layouts/_default/baseof.html b/themes/after-dark/layouts/_default/baseof.html new file mode 100644 index 0000000..5113faf --- /dev/null +++ b/themes/after-dark/layouts/_default/baseof.html @@ -0,0 +1,69 @@ + + + + {{ partial "meta/content-security-policy.html" . }} + {{ .Hugo.Generator }} + + + {{ block "title" . }}{{ .Title }} | {{ .Site.Title }}{{ end }} + + + {{ $default_noindex_kinds := slice "section" "taxonomy" "taxonomyTerm" }} + {{ $noindex_kinds := .Site.Params.noindex_kinds | default $default_noindex_kinds }} + {{ $is_noindex_true := and (isset .Params "noindex") .Params.noindex }} + {{ if or (in $noindex_kinds .Kind) ($is_noindex_true) }} + + {{ end }} + {{ template "_internal/opengraph.html" . }} + {{ template "_internal/twitter_cards.html" . }} + {{ partial "meta/ogimage-maybe.html" . }} + {{ partial "meta/telegram-channel-maybe.html" . }} + {{ if eq .Kind "home" }} + {{ partial "meta/verifications.html" . }} + {{ end }} + {{ partial "meta/http-referrer.html" . }} + {{ $import := resources.Get "/js/vendor/fetch-inject.min.js" }} + {{ $baseof := resources.Get "/js/baseof.js" | resources.ExecuteAsTemplate "baseof.js" . }} + + + {{ partial "head/modules.html" . }} + {{ if .RSSLink }} + + {{ end }} + + {{ if (isset .Params "prev") }} + + {{ end }} + {{ if (isset .Params "next") }} + + {{ end }} + {{ partial "head/favicon.html" . }} + {{ partial "global-styles.html" . }} + {{ $highlights := findRE "class\\s*?=\\s*?\".*?\\bhighlight\\b.*?\"|class\\s*?=\\s*?highlight\\b" .Content }} + {{ if ge (len $highlights) 1 }} + + + {{ end }} + + {{ $hackcss_disabled := .Site.Params.hackcss.disabled | default false }} + {{ $hackcss_mode := .Site.Params.hackcss.mode | default "hack" }} + {{ $hackcss_palette := .Site.Params.hackcss.palette | default "dark" }} + +
    {{ block "header" . }}{{ end }}
    +
    {{ block "main" . }}{{ end }}
    +
    {{ block "footer" . }}{{ end }}
    + {{ $defaults := .Site.Params.defaults.modules }} + {{ $modules := .Site.Params.modules }} + {{ if (or $modules $defaults) }} + {{ with (default $defaults.toxic_swamp $modules.toxic_swamp) }} + {{ partial "modules/toxic-swamp/toolbar.html" dict }} + {{ end }} + {{ end }} + + diff --git a/themes/after-dark/layouts/_default/index.json b/themes/after-dark/layouts/_default/index.json new file mode 100644 index 0000000..b1d640a --- /dev/null +++ b/themes/after-dark/layouts/_default/index.json @@ -0,0 +1,8 @@ +{{- $scratch := newScratch -}} +{{- $scratch.Add "index" slice -}} +{{- range .Site.RegularPages -}} + {{- if ne .Params.noindex true -}} + {{- $scratch.Add "index" (dict "title" .Title "tags" .Params.tags "categories" .Params.categories "contents" .Plain "url" .RelPermalink "summary" .Summary) -}} + {{- end -}} +{{- end -}} +{{- $scratch.Get "index" | jsonify -}} diff --git a/themes/after-dark/layouts/_default/list.html b/themes/after-dark/layouts/_default/list.html new file mode 100644 index 0000000..bd22d05 --- /dev/null +++ b/themes/after-dark/layouts/_default/list.html @@ -0,0 +1,16 @@ +{{ define "header" }} + {{ partial "masthead.html" . }} +{{ end }} +{{ define "main" }} +
    +

    {{ .Title }}

    +
    + {{ range .Paginator.Pages }} + {{ partial "page-summary.html" . }} + {{ end }} +{{ end }} +{{ define "footer" }} + {{ partial "pagination.html" . }} + {{ partial "powered-by.html" . }} + {{ partial "cookie-disclaimer.html" . }} +{{ end }} diff --git a/themes/after-dark/layouts/_default/rss.xml b/themes/after-dark/layouts/_default/rss.xml new file mode 100644 index 0000000..4ffde22 --- /dev/null +++ b/themes/after-dark/layouts/_default/rss.xml @@ -0,0 +1,36 @@ + + + https://blogs.law.harvard.edu/tech/rss + {{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{ . }} on {{ end }}{{ .Site.Title }}{{ end }} + {{ .Permalink }} + Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{ . }} {{ end }}{{ end }}on {{ .Site.Title }}{{ if .Site.Params.images }}{{ if ge (len .Site.Params.images) 1 }} + + {{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{ . }} on {{ end }}{{ .Site.Title }}{{ end }} + {{ .Permalink }} + {{ index .Site.Params.images 0 }} + {{ end }}{{ end }} + 1440 + {{ with .Site.Data.npm.latest }}{{ .name | humanize | title }} {{ .version }} (Hugo {{ $.Hugo.Version }}){{ else }}Hugo {{ .Hugo.Version }}{{ end }}{{ with .Site.LanguageCode }} + {{ . }}{{ end }}{{ with .Site.Author }} + {{ .email }}{{ with .name }} ({{ . }}){{ end }}{{ end }}{{ with .Site.Author }} + {{ .email }}{{ with .name }} ({{ . }}){{ end }}{{ end }}{{ with .Site.Copyright }} + {{ . }}{{ end }}{{ if not .Date.IsZero }} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}{{ end }} + {{ with .OutputFormats.Get "rss" }} + {{ printf "" .Permalink .MediaType | safeHTML }} + {{ end }} + {{ range .Pages }} + + {{ .Title }} + {{ .Permalink }}{{ if not .PublishDate.IsZero }} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}{{ end }}{{ if ne .Site.Params.hide_author true }}{{ if or (.Param "author") .Site.Author.email }} + {{ default .Site.Author.email (.Param "author") }}{{ if and (not (.Param "author")) .Site.Author.name }} ({{ default (.Param "author") .Site.Author.name }}){{ end }}{{ end }}{{ end }} + {{ .Permalink }} + {{ .Summary | plainify }}{{ range .Params.categories }} + {{ . | title }}{{ end }}{{ with .Resources.GetMatch "enclosure" }}{{ if .Params.length }} + {{ end }}{{ end }} + {{ "" | safeHTML }} + + {{ end }} + + diff --git a/themes/after-dark/layouts/_default/search.html b/themes/after-dark/layouts/_default/search.html new file mode 100644 index 0000000..f12e895 --- /dev/null +++ b/themes/after-dark/layouts/_default/search.html @@ -0,0 +1,48 @@ +{{ define "title" -}} + {{ .Title }} | {{ .Site.Title }} +{{- end }} +{{ define "header" }} + {{ partial "masthead.html" . }} +{{ end }} +{{ define "main" }} +
    +

    {{ .Title }}

    +
    + +
    +
    +
    + +
    +
    +

    Showing results for “{ resultsForSearch }”.

    +
    + +
    +
    +
    +
    +{{ end }} +{{ define "footer" }} + {{ partial "powered-by.html" . }} + {{ partial "cookie-disclaimer.html" . }} + {{ $script := resources.Get "/js/search.js" | resources.ExecuteAsTemplate "search.js" . }} + +{{ end }} diff --git a/themes/after-dark/layouts/_default/single.html b/themes/after-dark/layouts/_default/single.html new file mode 100644 index 0000000..0cc54da --- /dev/null +++ b/themes/after-dark/layouts/_default/single.html @@ -0,0 +1,16 @@ +{{ define "title" -}} + {{ .Title }} | {{ .Site.Title }} +{{- end }} +{{ define "header" }} + {{ partial "masthead.html" . }} +{{ end }} +{{ define "main" }} +
    +

    {{ .Title }}

    +
    + {{ .Content }} +{{ end }} +{{ define "footer" }} + {{ partial "powered-by.html" . }} + {{ partial "cookie-disclaimer.html" . }} +{{ end }} diff --git a/themes/after-dark/layouts/_default/taxonomy.html b/themes/after-dark/layouts/_default/taxonomy.html new file mode 100644 index 0000000..bd22d05 --- /dev/null +++ b/themes/after-dark/layouts/_default/taxonomy.html @@ -0,0 +1,16 @@ +{{ define "header" }} + {{ partial "masthead.html" . }} +{{ end }} +{{ define "main" }} +
    +

    {{ .Title }}

    +
    + {{ range .Paginator.Pages }} + {{ partial "page-summary.html" . }} + {{ end }} +{{ end }} +{{ define "footer" }} + {{ partial "pagination.html" . }} + {{ partial "powered-by.html" . }} + {{ partial "cookie-disclaimer.html" . }} +{{ end }} diff --git a/themes/after-dark/layouts/_default/terms.html b/themes/after-dark/layouts/_default/terms.html new file mode 100644 index 0000000..84bd2f4 --- /dev/null +++ b/themes/after-dark/layouts/_default/terms.html @@ -0,0 +1,17 @@ +{{ define "header" }} + {{ partial "masthead.html" . }} +{{ end }} +{{ define "main" }} +
    +

    {{ .Title }}

    +
    +
      + {{ range $key, $value := .Data.Terms }} +
    • {{ $key }} ({{ len $value }}) + {{ end }} +
    +{{ end }} +{{ define "footer" }} + {{ partial "powered-by.html" . }} + {{ partial "cookie-disclaimer.html" . }} +{{ end }} diff --git a/themes/after-dark/layouts/index.html b/themes/after-dark/layouts/index.html new file mode 100644 index 0000000..edcfc75 --- /dev/null +++ b/themes/after-dark/layouts/index.html @@ -0,0 +1,19 @@ +{{ define "title" -}} + {{ .Site.Title }} +{{- end }} +{{ define "header" }} + {{ partial "masthead.html" . }} +{{ end }} +{{ define "main" }} +
    +

    {{ .Title }}

    +
    + {{ range (.Paginate (where .Data.Pages "Type" "post")).Pages }} + {{ partial "page-summary.html" . }} + {{ end }} +{{ end }} +{{ define "footer" }} + {{ partial "pagination.html" . }} + {{ partial "powered-by.html" . }} + {{ partial "cookie-disclaimer.html" . }} +{{ end }} diff --git a/themes/after-dark/layouts/partials/components/alert.html b/themes/after-dark/layouts/partials/components/alert.html new file mode 100644 index 0000000..d984b03 --- /dev/null +++ b/themes/after-dark/layouts/partials/components/alert.html @@ -0,0 +1,3 @@ +
    + {{ .body }} +
    diff --git a/themes/after-dark/layouts/partials/components/button.html b/themes/after-dark/layouts/partials/components/button.html new file mode 100644 index 0000000..1b59e30 --- /dev/null +++ b/themes/after-dark/layouts/partials/components/button.html @@ -0,0 +1,15 @@ + diff --git a/themes/after-dark/layouts/partials/components/buttongroup.html b/themes/after-dark/layouts/partials/components/buttongroup.html new file mode 100644 index 0000000..564f6ac --- /dev/null +++ b/themes/after-dark/layouts/partials/components/buttongroup.html @@ -0,0 +1,3 @@ +
    + {{ .body }} +
    diff --git a/themes/after-dark/layouts/partials/components/card.html b/themes/after-dark/layouts/partials/components/card.html new file mode 100644 index 0000000..b2e9d1b --- /dev/null +++ b/themes/after-dark/layouts/partials/components/card.html @@ -0,0 +1,6 @@ +
    +
    {{ .header }}
    +
    +
    {{ .body }}
    +
    +
    \ No newline at end of file diff --git a/themes/after-dark/layouts/partials/components/cell.html b/themes/after-dark/layouts/partials/components/cell.html new file mode 100644 index 0000000..0755fa9 --- /dev/null +++ b/themes/after-dark/layouts/partials/components/cell.html @@ -0,0 +1 @@ +
    {{ .body }}
    \ No newline at end of file diff --git a/themes/after-dark/layouts/partials/components/external.html b/themes/after-dark/layouts/partials/components/external.html new file mode 100644 index 0000000..ee0a811 --- /dev/null +++ b/themes/after-dark/layouts/partials/components/external.html @@ -0,0 +1 @@ +{{ .body | default (replaceRE "^https?://(.*)" "$1" .href) }} \ No newline at end of file diff --git a/themes/after-dark/layouts/partials/components/form.html b/themes/after-dark/layouts/partials/components/form.html new file mode 100644 index 0000000..1258484 --- /dev/null +++ b/themes/after-dark/layouts/partials/components/form.html @@ -0,0 +1,13 @@ +
    + {{- .body -}} +
    diff --git a/themes/after-dark/layouts/partials/components/formactions.html b/themes/after-dark/layouts/partials/components/formactions.html new file mode 100644 index 0000000..ada1cb7 --- /dev/null +++ b/themes/after-dark/layouts/partials/components/formactions.html @@ -0,0 +1 @@ +
    {{ .body }}
    diff --git a/themes/after-dark/layouts/partials/components/formgroup.html b/themes/after-dark/layouts/partials/components/formgroup.html new file mode 100644 index 0000000..cc40934 --- /dev/null +++ b/themes/after-dark/layouts/partials/components/formgroup.html @@ -0,0 +1,8 @@ +
    + {{ with .legend }}{{ . }}{{ end }} + {{ .body }} +
    diff --git a/themes/after-dark/layouts/partials/components/grid.html b/themes/after-dark/layouts/partials/components/grid.html new file mode 100644 index 0000000..c3be71c --- /dev/null +++ b/themes/after-dark/layouts/partials/components/grid.html @@ -0,0 +1 @@ +
    {{ .body }}
    \ No newline at end of file diff --git a/themes/after-dark/layouts/partials/components/helpblock.html b/themes/after-dark/layouts/partials/components/helpblock.html new file mode 100644 index 0000000..0a06bc7 --- /dev/null +++ b/themes/after-dark/layouts/partials/components/helpblock.html @@ -0,0 +1 @@ +
    {{ .body }}
    diff --git a/themes/after-dark/layouts/partials/components/label.html b/themes/after-dark/layouts/partials/components/label.html new file mode 100644 index 0000000..d0fa868 --- /dev/null +++ b/themes/after-dark/layouts/partials/components/label.html @@ -0,0 +1 @@ +{{ .body }} diff --git a/themes/after-dark/layouts/partials/components/navmenu.html b/themes/after-dark/layouts/partials/components/navmenu.html new file mode 100644 index 0000000..1cbffeb --- /dev/null +++ b/themes/after-dark/layouts/partials/components/navmenu.html @@ -0,0 +1,11 @@ +{{ if not (eq .settings.hidden true) }} + +{{ end }} diff --git a/themes/after-dark/layouts/partials/components/progress.html b/themes/after-dark/layouts/partials/components/progress.html new file mode 100644 index 0000000..65ad46f --- /dev/null +++ b/themes/after-dark/layouts/partials/components/progress.html @@ -0,0 +1,11 @@ +{{ if eq .show_percent "true" }} +
    + {{ with .value }} +
    + {{ end }} +
    +{{ else }} +
    +
    +
    +{{ end }} diff --git a/themes/after-dark/layouts/partials/components/select.html b/themes/after-dark/layouts/partials/components/select.html new file mode 100644 index 0000000..e5d6ac2 --- /dev/null +++ b/themes/after-dark/layouts/partials/components/select.html @@ -0,0 +1,3 @@ + + {{ with .body }}{{ . }}{{ end }} + diff --git a/themes/after-dark/layouts/partials/components/snippets/textattrs.html b/themes/after-dark/layouts/partials/components/snippets/textattrs.html new file mode 100644 index 0000000..4fa3f23 --- /dev/null +++ b/themes/after-dark/layouts/partials/components/snippets/textattrs.html @@ -0,0 +1,23 @@ +{{ $permitted_attrs := .permitted_attrs }} +{{ $boolean_attrs := .boolean_attrs }} +{{ $validations := .validations }} +{{ range $name, $value := .attrs }} + {{ if and (ne $value nil) (in $permitted_attrs $name) }} + {{ if ne "class" $name }} + {{ if in $boolean_attrs $name }} + {{ if eq $value "true" }}{{ $name }}{{ end }} + {{ else if index $validations $name }} + {{ if in (index $validations $name) $value }} + {{ $name }}="{{ $value }}" + {{ end }} + {{ else }} + {{ if eq $name "id" }} + {{ $name }}="{{- $value | urlize -}}" + {{ else }} + {{ $name }}="{{ $value }}" + {{ end }} + {{ end }} + {{ end }} + {{ end }} +{{ end }} +class="form-control{{ with .attrs.class }} {{ . }}{{ end }}" diff --git a/themes/after-dark/layouts/partials/components/textarea.html b/themes/after-dark/layouts/partials/components/textarea.html new file mode 100644 index 0000000..be19d9a --- /dev/null +++ b/themes/after-dark/layouts/partials/components/textarea.html @@ -0,0 +1,6 @@ +{{ $permitted_attrs := .permitted_attrs | default (slice "id" "name" "class" "autocomplete" "autofocus" "cols" "disabled" "form" "maxlength" "minlength" "name" "placeholder" "readonly" "required" "rows" "spellcheck" "wrap" "tabindex") }} +{{ $boolean_attrs := .boolean_attrs | default (slice "autofocus" "disabled" "readonly" "required") }} +{{ $validations := .validations | default (dict "spellcheck" (slice "true" "default" "false") "autocomplete" (slice "on" "off") "wrap" (slice "hard" "soft" "off")) }} + diff --git a/themes/after-dark/layouts/partials/components/textinput.html b/themes/after-dark/layouts/partials/components/textinput.html new file mode 100644 index 0000000..c28d783 --- /dev/null +++ b/themes/after-dark/layouts/partials/components/textinput.html @@ -0,0 +1,4 @@ +{{ $permitted_attrs := .permitted_attrs | default (slice "id" "name" "class" "autocomplete" "autofocus" "disabled" "form" "formaction" "formmethod" "formnovalidate" "formtarget" "height" "max" "maxlength" "min" "minlength" "multiple" "pattern" "placeholder" "readonly" "required" "size" "spellcheck" "step" "tabindex" "type" "value" "width") }} +{{ $boolean_attrs := .boolean_attrs | default (slice "autofocus" "disabled" "readonly" "required") }} +{{ $validations := .validations | default (dict "type" (slice "email" "hidden" "number" "password" "search" "tel" "text" "url") "spellcheck" (slice "true" "default" "false") "autocomplete" (slice "off" "on" "name" "honorific-prefix" "given-name" "additional-name" "family-name" "honorific-suffix" "nickname" "email" "username" "new-password" "current-password" "organization-title" "organization" "street-address" "address-line1" "address-line2" "address-line3" "address-level4" "address-level3" "address-level2" "address-level1" "country" "country-name" "postal-code" "cc-name" "cc-given-name" "cc-additional-name" "cc-family-name" "cc-number" "cc-exp" "cc-exp-month" "cc-exp-year" "cc-csc" "cc-type" "transaction-currency" "transaction-amount" "language" "bday" "bday-day" "bday-month" "bday-year" "sex" "tel" "tel-country-code" "tel-national" "tel-area-code" "tel-local" "tel-extension" "email" "impp" "url" "photo")) }} + diff --git a/themes/after-dark/layouts/partials/components/throbber.html b/themes/after-dark/layouts/partials/components/throbber.html new file mode 100644 index 0000000..11f06e2 --- /dev/null +++ b/themes/after-dark/layouts/partials/components/throbber.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/after-dark/layouts/partials/cookie-disclaimer.html b/themes/after-dark/layouts/partials/cookie-disclaimer.html new file mode 100644 index 0000000..6c72356 --- /dev/null +++ b/themes/after-dark/layouts/partials/cookie-disclaimer.html @@ -0,0 +1,9 @@ +{{ if eq .Site.Params.has_cookies false }} +
    +
    + + This site does not use + + cookies. + +{{ end }} diff --git a/themes/after-dark/layouts/partials/global-styles.html b/themes/after-dark/layouts/partials/global-styles.html new file mode 100644 index 0000000..daf2fef --- /dev/null +++ b/themes/after-dark/layouts/partials/global-styles.html @@ -0,0 +1,53 @@ +{{ $custom := resources.Get "css/custom.css" }} +{{ if eq .Site.Params.hackcss.disabled true }} + {{ with (slice $custom | resources.Concat "styles.css").Content }} + {{ if gt (len .) 0 }} + + {{ partial "meta/theme-color.html" . }} + {{ end }} + {{ end }} +{{ else }} + {{ $hack := resources.Get "css/vendor/hack/hack.css" }} + {{ $standard := resources.Get "css/vendor/hack/standard.css" }} + {{ $dark := resources.Get "css/vendor/hack/dark.css" }} + {{ $darkgrey := resources.Get "css/vendor/hack/dark-grey.css" }} + {{ $solarizeddark := resources.Get "css/vendor/hack/solarized-dark.css" }} + {{ $theme := resources.Get "css/theme.css" | minify }} + {{ if eq .Site.Params.hackcss.palette "dark-grey" }} + {{ if eq .Site.Params.hackcss.mode "standard" }} + {{ with (slice $hack $standard $darkgrey $theme $custom | resources.Concat "styles.css").Content }} + + {{ partial "meta/theme-color.html" . }} + {{ end }} + {{ else }} + {{ with (slice $hack $darkgrey $theme $custom | resources.Concat "styles.css").Content }} + + {{ partial "meta/theme-color.html" . }} + {{ end }} + {{ end }} + {{ else if eq .Site.Params.hackcss.palette "solarized-dark" }} + {{ if eq .Site.Params.hackcss.mode "standard" }} + {{ with (slice $hack $standard $solarizeddark $theme $custom | resources.Concat "styles.css").Content }} + + {{ partial "meta/theme-color.html" . }} + {{ end }} + {{ else }} + {{ with (slice $hack $solarizeddark $theme $custom | resources.Concat "styles.css").Content }} + + {{ partial "meta/theme-color.html" . }} + {{ end }} + {{ end }} + {{ else }} + {{ if eq .Site.Params.hackcss.mode "standard" }} + {{ with (slice $hack $standard $dark $theme $custom | resources.Concat "styles.css").Content }} + + {{ partial "meta/theme-color.html" . }} + {{ end }} + {{ else }} + {{ with (slice $hack $dark $theme $custom | resources.Concat "styles.css").Content }} + + {{ partial "meta/theme-color.html" . }} + {{ end }} + {{ end }} + {{ end }} +{{ end }} diff --git a/themes/after-dark/layouts/partials/head/favicon.html b/themes/after-dark/layouts/partials/head/favicon.html new file mode 100644 index 0000000..0769b90 --- /dev/null +++ b/themes/after-dark/layouts/partials/head/favicon.html @@ -0,0 +1 @@ + diff --git a/themes/after-dark/layouts/partials/head/modules.html b/themes/after-dark/layouts/partials/head/modules.html new file mode 100644 index 0000000..cea17b4 --- /dev/null +++ b/themes/after-dark/layouts/partials/head/modules.html @@ -0,0 +1,16 @@ +{{ $defaults := .Site.Params.defaults.modules }} +{{ $modules := .Site.Params.modules }} +{{ if (or $modules $defaults) }} + {{ with $modules.fractal_forest }} + {{ partial "modules/fractal-forest/index.html" . }} + {{ end }} + {{ with $modules.hall_of_mirrors }} + {{ partial "modules/hall-of-mirrors/index.html" (dict "settings" . "page" $.Page) }} + {{ end }} + {{ with (default $defaults.toxic_swamp $modules.toxic_swamp) }} + {{ partial "modules/toxic-swamp/index.html" (dict "settings" . "data" $.Site.Data) }} + {{ end }} + {{ with $modules.voyeur }} + {{ partial "modules/voyeur/index.html" . }} + {{ end }} +{{ end }} diff --git a/themes/after-dark/layouts/partials/masthead.html b/themes/after-dark/layouts/partials/masthead.html new file mode 100644 index 0000000..e611e7c --- /dev/null +++ b/themes/after-dark/layouts/partials/masthead.html @@ -0,0 +1,11 @@ +{{ $is_section_menu_enabled := ne .Site.Params.show_menu false }} +{{ range $name, $entries := .Site.Menus }} + {{ if or (ne $name "main") (and (eq $name "main") $is_section_menu_enabled) }} + {{ with $.Site.Params.layout.menu }} + {{ $settings := (index . $name) | default dict }} + {{ partial "components/navmenu.html" (dict "name" $name "entries" $entries "settings" $settings "page" $)}} + {{ else }} + {{ partial "components/navmenu.html" (dict "name" $name "entries" $entries "settings" dict "page" $)}} + {{ end }} + {{ end }} +{{ end }} diff --git a/themes/after-dark/layouts/partials/meta/content-security-policy.html b/themes/after-dark/layouts/partials/meta/content-security-policy.html new file mode 100644 index 0000000..8758949 --- /dev/null +++ b/themes/after-dark/layouts/partials/meta/content-security-policy.html @@ -0,0 +1,38 @@ +{{ $is_disabled := .Param "disable_csp" }} +{{ $site_directives := .Site.Params.security.csp.directives }} +{{ if and $site_directives (ne $is_disabled true) }} + {{ if ge (len $site_directives) 1 }} + + {{ end }} +{{ else if not $is_disabled }} + +{{ end }} diff --git a/themes/after-dark/layouts/partials/meta/http-referrer.html b/themes/after-dark/layouts/partials/meta/http-referrer.html new file mode 100644 index 0000000..eefdef0 --- /dev/null +++ b/themes/after-dark/layouts/partials/meta/http-referrer.html @@ -0,0 +1,5 @@ +{{ with .Site.Params.seo.referrer }} + +{{ else }} + +{{ end }} diff --git a/themes/after-dark/layouts/partials/meta/ogimage-maybe.html b/themes/after-dark/layouts/partials/meta/ogimage-maybe.html new file mode 100644 index 0000000..e5865e1 --- /dev/null +++ b/themes/after-dark/layouts/partials/meta/ogimage-maybe.html @@ -0,0 +1,13 @@ + +{{ if and (.IsNode) (.Site.Params.images) }} + +{{ end }} + +{{ if and (.IsPage) (not .Params.images) (.Site.Params.images) }} + +{{ end }} diff --git a/themes/after-dark/layouts/partials/meta/telegram-channel-maybe.html b/themes/after-dark/layouts/partials/meta/telegram-channel-maybe.html new file mode 100644 index 0000000..b7dd080 --- /dev/null +++ b/themes/after-dark/layouts/partials/meta/telegram-channel-maybe.html @@ -0,0 +1,3 @@ +{{ with .Site.Params.seo.telegram_channel }} + +{{ end }} diff --git a/themes/after-dark/layouts/partials/meta/theme-color.html b/themes/after-dark/layouts/partials/meta/theme-color.html new file mode 100644 index 0000000..b58af05 --- /dev/null +++ b/themes/after-dark/layouts/partials/meta/theme-color.html @@ -0,0 +1,9 @@ +{{ $cssvar := "--trim-color:\\s*([^!;}]*).*" }} +{{ $hackbg := "pre{background-color:([^!;}]*).*" }} +{{ with index (findRE $cssvar . 1) 0 }} + +{{ else }} + {{ with index (findRE $hackbg . 1) 0 }} + + {{ end }} +{{ end }} diff --git a/themes/after-dark/layouts/partials/meta/verifications.html b/themes/after-dark/layouts/partials/meta/verifications.html new file mode 100644 index 0000000..4abbd7c --- /dev/null +++ b/themes/after-dark/layouts/partials/meta/verifications.html @@ -0,0 +1,12 @@ +{{ with .Site.Params.seo.webmaster_verifications.google }} + +{{ end }} +{{ with .Site.Params.seo.webmaster_verifications.bing }} + +{{ end }} +{{ with .Site.Params.seo.webmaster_verifications.alexa }} + +{{ end }} +{{ with .Site.Params.seo.webmaster_verifications.yandex }} + +{{ end }} diff --git a/themes/after-dark/layouts/partials/page-summary.html b/themes/after-dark/layouts/partials/page-summary.html new file mode 100644 index 0000000..267bd4a --- /dev/null +++ b/themes/after-dark/layouts/partials/page-summary.html @@ -0,0 +1,27 @@ +
    +
    +

    + {{ .Title }} +

    + {{ if eq .Type "post" }} +

    {{ partial "post/meta.html" . }}

    + {{ end }} +
    + {{ if .Description }} +
    {{ .Description }}
    + {{ end }} +
    + {{ .Summary }} +
    + {{ if .Truncated }} + + {{ end }} + + + + {{ with .Params.images }} + + {{ end }} +
    diff --git a/themes/after-dark/layouts/partials/pagination.html b/themes/after-dark/layouts/partials/pagination.html new file mode 100644 index 0000000..55fa2c8 --- /dev/null +++ b/themes/after-dark/layouts/partials/pagination.html @@ -0,0 +1,13 @@ + diff --git a/themes/after-dark/layouts/partials/post/byline.html b/themes/after-dark/layouts/partials/post/byline.html new file mode 100644 index 0000000..71cf860 --- /dev/null +++ b/themes/after-dark/layouts/partials/post/byline.html @@ -0,0 +1,20 @@ +

    + Published + {{ if ne .Site.Params.hide_author true }} + {{ with .Params.author }} + by + {{ else }} + by + {{ end }} + {{ end }} + + {{ with .Params.categories }} + in {{ delimit (apply (apply (sort .) "partial" "post/category-link.html" ".") "chomp" ".") ", " " and " }} + {{ end }} + {{ with .Params.tags }} + and tagged {{ delimit (apply (apply (sort .) "partial" "post/tag-link.html" ".") "chomp" ".") ", " " and " }} + {{ end }} + using {{ .WordCount }} words. +

    diff --git a/themes/after-dark/layouts/partials/post/category-link.html b/themes/after-dark/layouts/partials/post/category-link.html new file mode 100644 index 0000000..e36b7ff --- /dev/null +++ b/themes/after-dark/layouts/partials/post/category-link.html @@ -0,0 +1 @@ +{{ . }} diff --git a/themes/after-dark/layouts/partials/post/meta.html b/themes/after-dark/layouts/partials/post/meta.html new file mode 100644 index 0000000..c8546a2 --- /dev/null +++ b/themes/after-dark/layouts/partials/post/meta.html @@ -0,0 +1,15 @@ + + + + +{{ .ReadingTime }} minute read + + + +{{ if .PublishDate.IsZero }} + Published: +{{ else if lt .PublishDate .Lastmod }} + Modified: +{{ else }} + Published: +{{ end }} diff --git a/themes/after-dark/layouts/partials/post/related-content.html b/themes/after-dark/layouts/partials/post/related-content.html new file mode 100644 index 0000000..4536bbc --- /dev/null +++ b/themes/after-dark/layouts/partials/post/related-content.html @@ -0,0 +1,13 @@ +{{ $num_to_show := .Site.Params.related_content_limit | default 7 }} +{{ $related := .Site.RegularPages.Related . | first $num_to_show }} +{{ with $related }} + +{{ end }} diff --git a/themes/after-dark/layouts/partials/post/tag-link.html b/themes/after-dark/layouts/partials/post/tag-link.html new file mode 100644 index 0000000..4f33a88 --- /dev/null +++ b/themes/after-dark/layouts/partials/post/tag-link.html @@ -0,0 +1 @@ + diff --git a/themes/after-dark/layouts/partials/powered-by.html b/themes/after-dark/layouts/partials/powered-by.html new file mode 100644 index 0000000..ca6b778 --- /dev/null +++ b/themes/after-dark/layouts/partials/powered-by.html @@ -0,0 +1,6 @@ +{{ if ne .Site.Params.has_cookies false }} + + This page was generated by + {{ partial "components/external.html" (dict "itemtype" "significantLink" "body" "After Dark" "href" "https://after-dark.habd.as" "referrerpolicy" "origin-when-cross-origin") }}. + +{{ end }} diff --git a/themes/after-dark/layouts/partials/toc-maybe.html b/themes/after-dark/layouts/partials/toc-maybe.html new file mode 100644 index 0000000..e896503 --- /dev/null +++ b/themes/after-dark/layouts/partials/toc-maybe.html @@ -0,0 +1,6 @@ +{{ if and (isset .Params "toc") .Params.toc }} +
    + Table of Contents + {{ .TableOfContents }} +
    +{{ end }} diff --git a/themes/after-dark/layouts/post/single.html b/themes/after-dark/layouts/post/single.html new file mode 100644 index 0000000..754de31 --- /dev/null +++ b/themes/after-dark/layouts/post/single.html @@ -0,0 +1,110 @@ +{{ define "header" }} + {{ partial "masthead.html" . }} +{{ end }} +{{ define "main" }} +
    + {{ template "_internal/schema.html" . }} +
    +

    {{ .Title }}

    +

    + {{ partial "post/meta.html" . }} +

    + {{ if .Description }} +
    {{ .Description }}
    + {{ end }} + {{ with $.Resources.GetMatch "header" }} + {{ $meta_sameas := .Params.meta.sameas }} + {{ $meta_license := .Params.meta.license }} + {{ $meta_creator := .Params.meta.creator }} + {{ $meta_description := .Params.meta.description }} + {{ $meta_keywords := .Params.meta.keywords }} + {{ $meta_contentlocation := .Params.meta.contentlocation }} + {{ $image600 := .Fill "600x338 q60 Center" }} + {{ $image900 := .Fill "900x506 q70 Center" }} + {{ $image1200 := .Fill "1200x675 q80 Center" }} + {{ $image1600 := .Fill "1600x900 q90 Center" }} + + {{ end }} +
    + {{ partial "toc-maybe.html" . }} +
    + {{ .Content }} +
    +
    +
    + {{ partial "post/byline.html" . }} + {{ partial "post/related-content.html" . }} + {{ template "_internal/disqus.html" . }} +
    +
    +{{ end }} +{{ define "footer" }} + {{ partial "powered-by.html" . }} + {{ partial "cookie-disclaimer.html" . }} +{{ end }} diff --git a/themes/after-dark/layouts/shortcodes/blockquote.html b/themes/after-dark/layouts/shortcodes/blockquote.html new file mode 100644 index 0000000..302d7a3 --- /dev/null +++ b/themes/after-dark/layouts/shortcodes/blockquote.html @@ -0,0 +1,14 @@ +{{ $body := .Get "text" | default .Inner }} +{{ $class := .Get "class" }} +{{ $citelink := .Get "citelink" }} +{{ $cite := .Get "cite" }} + +

    {{- $body | plainify -}}

    + {{ if $citelink }} + {{ partial "components/external.html" (dict "href" $citelink "body" $cite) }} + {{ else if $cite }} + {{ $cite }} + {{ else }} + N.N. + {{ end }} + diff --git a/themes/after-dark/layouts/shortcodes/external.html b/themes/after-dark/layouts/shortcodes/external.html new file mode 100644 index 0000000..fec4c7e --- /dev/null +++ b/themes/after-dark/layouts/shortcodes/external.html @@ -0,0 +1,19 @@ +{{ $href := .Get "href" | default nil -}} +{{ $body := .Get "text" | default .Inner -}} +{{ $class := .Get "class" -}} +{{ $referrerpolicy := .Get "referrerpolicy" -}} +{{ $target := .Get "target" -}} +{{ $title := .Get "title" -}} +{{ $type := .Get "type" -}} +{{ $rel := .Get "rel" -}} +{{ $itemtype := .Get "itemtype" -}} +{{- if .IsNamedParams -}} + {{ partial "components/external.html" (dict "href" $href "body" $body "class" $class "referrerpolicy" $referrerpolicy "target" $target "type" $type "title" $title "rel" $rel "itemtype" $itemtype "suppress_external" (and .Inner (eq (len (findRE "external" $rel)) 0))) }} +{{- else if gt (len .Params) 1 -}} + {{ partial "components/external.html" (dict "href" (.Get 0) "body" (.Get 1)) }} +{{- else -}} + {{ partial "components/external.html" (dict "href" (.Get 0)) }} +{{- end -}} +{{- if or (and .IsNamedParams (eq $href nil)) (and (eq .IsNamedParams false) (eq (.Get 0) nil)) }} +

    {{ partial "components/alert.html" (dict "type" "error" "body" (errorf "Invalid use of external shortcode. Please provide a URL.")) }}

    +{{ end -}} diff --git a/themes/after-dark/layouts/shortcodes/figure.html b/themes/after-dark/layouts/shortcodes/figure.html new file mode 100644 index 0000000..40ac989 --- /dev/null +++ b/themes/after-dark/layouts/shortcodes/figure.html @@ -0,0 +1,30 @@ +{{ $src := .Get "src" }} +{{ $lqipsrc := .Get "lqipsrc" }} +{{ $caption := .Get "caption" }} +{{ $link := .Get "link" }} +{{ $linktarget := .Get "linktarget" }} +{{ $attr := .Get "attr" }} +{{ $attrlink := .Get "attrlink" }} +{{ $alt := .Get "alt" }} +{{ $title := .Get "title" }} +{{ $class := .Get "class" }} + + {{ with $link }}{{ end }} + {{ if $lqipsrc }} + + {{ else }} + + {{ end }} + {{ if $link }}{{ end }} + {{ if or (or $title $caption) $attr }} +
    {{ if isset .Params "title" }} +
    {{ $title }}
    {{ end }} + {{ if or $caption $attr }} + {{ $caption }} + {{ with $attrlink }} {{ end }} + {{ $attr }} + {{ if $attrlink }} {{ end }} + {{ end }} +
    + {{ end }} + diff --git a/themes/after-dark/layouts/shortcodes/hackcss-alert.html b/themes/after-dark/layouts/shortcodes/hackcss-alert.html new file mode 100644 index 0000000..74275d6 --- /dev/null +++ b/themes/after-dark/layouts/shortcodes/hackcss-alert.html @@ -0,0 +1,4 @@ +{{ $type := .Get "type" }} +{{ $class := .Get "class" }} +{{ $body := .Get "text" | default .Inner }} +{{ partial "components/alert.html" (dict "type" $type "class" $class "body" $body) }} diff --git a/themes/after-dark/layouts/shortcodes/hackcss-button.html b/themes/after-dark/layouts/shortcodes/hackcss-button.html new file mode 100644 index 0000000..9259867 --- /dev/null +++ b/themes/after-dark/layouts/shortcodes/hackcss-button.html @@ -0,0 +1,16 @@ +{{ $type := .Get "type" }} +{{ $body := .Get "text" | default .Inner }} +{{ $isghost := .Get "isghost" }} +{{ $isblock := .Get "isblock" }} +{{ $id := .Get "id" }} +{{ $name := .Get "name" }} +{{ $class := .Get "class" }} +{{ $action := .Get "action" }} +{{ $form := .Get "form" }} +{{ $value := .Get "value" }} +{{ $onclick := .Get "onclick" }} +{{ $disabled := .Get "disabled" }} +{{ $tabindex := .Get "tabindex" }} +{{ $target := .Get "target" }} +{{ $method := .Get "method" }} +{{ partial "components/button.html" (dict "type" $type "body" $body "isghost" $isghost "isblock" $isblock "action" $action "form" $form "value" $value "onclick" $onclick "id" $id "name" $name "class" $class "disabled" $disabled "tabindex" $tabindex "target" $target "method" $method) }} diff --git a/themes/after-dark/layouts/shortcodes/hackcss-buttongroup.html b/themes/after-dark/layouts/shortcodes/hackcss-buttongroup.html new file mode 100644 index 0000000..302ded7 --- /dev/null +++ b/themes/after-dark/layouts/shortcodes/hackcss-buttongroup.html @@ -0,0 +1,4 @@ +{{ $formactions := .Get "formactions" }} +{{ $class := .Get "class" }} +{{ $body := .Inner }} +{{ partial "components/buttongroup.html" (dict "formactions" $formactions "class" $class "body" $body) }} diff --git a/themes/after-dark/layouts/shortcodes/hackcss-card.html b/themes/after-dark/layouts/shortcodes/hackcss-card.html new file mode 100644 index 0000000..1e21678 --- /dev/null +++ b/themes/after-dark/layouts/shortcodes/hackcss-card.html @@ -0,0 +1,3 @@ +{{ $header := .Get "header" }} +{{ $body := .Get "text" | default .Inner }} +{{ partial "components/card.html" (dict "header" $header "body" $body) }} diff --git a/themes/after-dark/layouts/shortcodes/hackcss-cell.html b/themes/after-dark/layouts/shortcodes/hackcss-cell.html new file mode 100644 index 0000000..59114d7 --- /dev/null +++ b/themes/after-dark/layouts/shortcodes/hackcss-cell.html @@ -0,0 +1,3 @@ +{{ $class := .Get "class" }} +{{ $body := .Get "text" | default .Inner }} +{{- partial "components/cell.html" (dict "class" $class "body" $body) -}} diff --git a/themes/after-dark/layouts/shortcodes/hackcss-form.html b/themes/after-dark/layouts/shortcodes/hackcss-form.html new file mode 100644 index 0000000..074c837 --- /dev/null +++ b/themes/after-dark/layouts/shortcodes/hackcss-form.html @@ -0,0 +1,15 @@ +{{ $accept_charset := .Get "acceptcharset" }} +{{ $id := .Get "id" }} +{{ $name := .Get "name" }} +{{ $action := .Get "action" }} +{{ $enctype := .Get "enctype" }} +{{ $target := .Get "target" }} +{{ $novalidate := .Get "novalidate" }} +{{ $autocomplete := .Get "autocomplete" }} +{{ $method := .Get "method" }} +{{ $class := .Get "class" }} +{{ $body := .Inner }} +{{ partial "components/form.html" (dict "id" $id "name" $name "accept_charset" $accept_charset "action" $action "enctype" $enctype "target" $target "novalidate" $novalidate "method" $method "class" $class "body" $body) }} +{{ if eq "false" $autocomplete }} +

    {{ partial "components/alert.html" (dict "type" "error" "body" (errorf "Invalid autocomplete value for form. Did you mean \"off\" instead of %q?" $autocomplete)) }}

    +{{ end }} diff --git a/themes/after-dark/layouts/shortcodes/hackcss-formgroup.html b/themes/after-dark/layouts/shortcodes/hackcss-formgroup.html new file mode 100644 index 0000000..b50eccb --- /dev/null +++ b/themes/after-dark/layouts/shortcodes/hackcss-formgroup.html @@ -0,0 +1,9 @@ +{{ $hastextarea := .Get "hastextarea" }} +{{ $state := .Get "state" }} +{{ $disabled := .Get "disabled" }} +{{ $form := .Get "form" }} +{{ $name := .Get "name" }} +{{ $class := .Get "class" }} +{{ $legend := .Get "legend" }} +{{ $body := .Get "body" | default .Inner }} +{{ partial "components/formgroup.html" (dict "hastextarea" $hastextarea "state" $state "class" $class "disabled" $disabled "form" $form "name" $name "legend" $legend "body" $body) }} diff --git a/themes/after-dark/layouts/shortcodes/hackcss-grid.html b/themes/after-dark/layouts/shortcodes/hackcss-grid.html new file mode 100644 index 0000000..65c6c76 --- /dev/null +++ b/themes/after-dark/layouts/shortcodes/hackcss-grid.html @@ -0,0 +1,3 @@ +{{ $class := .Get "class" }} +{{ $body := .Inner }} +{{- partial "components/grid.html" (dict "class" $class "body" $body) -}} diff --git a/themes/after-dark/layouts/shortcodes/hackcss-helpblock.html b/themes/after-dark/layouts/shortcodes/hackcss-helpblock.html new file mode 100644 index 0000000..9e500bc --- /dev/null +++ b/themes/after-dark/layouts/shortcodes/hackcss-helpblock.html @@ -0,0 +1,3 @@ +{{ $class := .Get "class" }} +{{ $body := .Get "text" | default .Inner }} +{{ partial "components/helpblock.html" (dict "class" $class "body" $body) }} diff --git a/themes/after-dark/layouts/shortcodes/hackcss-label.html b/themes/after-dark/layouts/shortcodes/hackcss-label.html new file mode 100644 index 0000000..e2656fb --- /dev/null +++ b/themes/after-dark/layouts/shortcodes/hackcss-label.html @@ -0,0 +1,4 @@ +{{ $for := .Get "for" }} +{{ $form := .Get "form" }} +{{ $body := .Get "text" | default .Inner }} +{{ partial "components/label.html" (dict "for" $for "form" $form "body" $body) }} diff --git a/themes/after-dark/layouts/shortcodes/hackcss-progress.html b/themes/after-dark/layouts/shortcodes/hackcss-progress.html new file mode 100644 index 0000000..71448f5 --- /dev/null +++ b/themes/after-dark/layouts/shortcodes/hackcss-progress.html @@ -0,0 +1,4 @@ +{{ $show_percent := .Get "showpercent" }} +{{ $fill_text := .Get "filltext" | default "Loading" }} +{{ $value := .Get "value" }} +{{ partial "components/progress.html" (dict "show_percent" $show_percent "fill_text" $fill_text "value" $value) }} diff --git a/themes/after-dark/layouts/shortcodes/hackcss-select.html b/themes/after-dark/layouts/shortcodes/hackcss-select.html new file mode 100644 index 0000000..d5e4f51 --- /dev/null +++ b/themes/after-dark/layouts/shortcodes/hackcss-select.html @@ -0,0 +1,7 @@ +{{ $id := .Get "id" }} +{{ $name := .Get "name" }} +{{ $class := .Get "class" }} +{{ $disabled := .Get "disabled" }} +{{ $form := .Get "form" }} +{{ $body := .Get "body" | default .Inner }} +{{ partial "components/select.html" (dict "id" $id "name" $name "class" $class "disabled" $disabled "body" $body) }} diff --git a/themes/after-dark/layouts/shortcodes/hackcss-textarea.html b/themes/after-dark/layouts/shortcodes/hackcss-textarea.html new file mode 100644 index 0000000..5b08832 --- /dev/null +++ b/themes/after-dark/layouts/shortcodes/hackcss-textarea.html @@ -0,0 +1,25 @@ +{{ $id := .Get "id" | default nil }} +{{ $name := .Get "name" | default nil }} +{{ $class := .Get "class" | default nil }} +{{ $autocomplete := .Get "autocomplete" | default nil }} +{{ $autofocus := .Get "autofocus" | default nil }} +{{ $cols := .Get "cols" | default nil }} +{{ $disabled := .Get "disabled" | default nil }} +{{ $form := .Get "form" | default nil }} +{{ $maxlength := .Get "maxlength" | default nil }} +{{ $minlength := .Get "minlength" | default nil }} +{{ $placeholder := .Get "placeholder" | default nil }} +{{ $readonly := .Get "readonly" | default nil }} +{{ $required := .Get "required" | default nil }} +{{ $rows := .Get "rows" | default nil }} +{{ $spellcheck := .Get "spellcheck" | default nil }} +{{ $wrap := .Get "wrap" | default nil }} +{{ $tabindex := .Get "tabindex" | default nil }} +{{ $body := .Get "text" | default nil }} +{{ partial "components/textarea.html" (dict "body" $body "attrs" (dict "id" $id "name" $name "class" $class "autocomplete" $autocomplete "autofocus" $autofocus "cols" $cols "disabled" $disabled "form" $form "maxlength" $maxlength "minlength" $minlength "placeholder" $placeholder "readonly" $readonly "required" $required "rows" $rows "spellcheck" $spellcheck "wrap" $wrap "tabindex" $tabindex)) }} +{{ if eq "false" $autocomplete }} +

    {{ partial "components/alert.html" (dict "type" "error" "body" (errorf "Invalid autocomplete value for textarea. Did you mean \"off\" instead of %q?" $autocomplete)) }}

    +{{ end }} +{{ if eq "false" $wrap }} +

    {{ partial "components/alert.html" (dict "type" "error" "body" (errorf "Invalid wrap value for textarea. Did you mean \"off\" instead of %q?" $wrap)) }}

    +{{ end }} diff --git a/themes/after-dark/layouts/shortcodes/hackcss-textinput.html b/themes/after-dark/layouts/shortcodes/hackcss-textinput.html new file mode 100644 index 0000000..36c76eb --- /dev/null +++ b/themes/after-dark/layouts/shortcodes/hackcss-textinput.html @@ -0,0 +1,31 @@ +{{ $id := .Get "id" | default nil }} +{{ $name := .Get "name" | default nil }} +{{ $class := .Get "class" | default nil }} +{{ $autocomplete := .Get "autocomplete" | default nil }} +{{ $autofocus := .Get "autofocus" | default nil }} +{{ $disabled := .Get "disabled" | default nil }} +{{ $form := .Get "form" | default nil }} +{{ $formaction := .Get "formaction" | default nil }} +{{ $formmethod := .Get "formmethod" | default nil }} +{{ $formtarget := .Get "formtarget" | default nil }} +{{ $height := .Get "height" | default nil }} +{{ $max := .Get "max" | default nil }} +{{ $maxlength := .Get "maxlength" | default nil }} +{{ $min := .Get "min" | default nil }} +{{ $minlength := .Get "minlength" | default nil }} +{{ $multiple := .Get "multiple" | default nil }} +{{ $pattern := .Get "pattern" | default nil }} +{{ $placeholder := .Get "placeholder" | default nil }} +{{ $readonly := .Get "readonly" | default nil }} +{{ $required := .Get "required" | default nil }} +{{ $size := .Get "size" | default nil }} +{{ $spellcheck := .Get "spellcheck" | default nil }} +{{ $step := .Get "step" | default nil }} +{{ $tabindex := .Get "tabindex" | default nil }} +{{ $type := .Get "type" | default nil }} +{{ $value := .Get "value" | default nil }} +{{ $width := .Get "width" | default nil }} +{{ partial "components/textinput.html" (dict "attrs" (dict "id" $id "name" $name "class" $class "autocomplete" $autocomplete "autofocus" $autofocus "disabled" $disabled "form" $form "formaction" $formaction "formmethod" $formmethod "formtarget" $formtarget "height" $height "max" $max "maxlength" $maxlength "min" $min "minlength" $minlength "multiple" $multiple "pattern" $pattern "placeholder" $placeholder "readonly" $readonly "required" $required "size" $size "spellcheck" $spellcheck "step" $step "tabindex" $tabindex "type" $type "value" $value "width" $width)) }} +{{ if eq "false" $autocomplete }} +

    {{ partial "components/alert.html" (dict "type" "error" "body" (errorf "Invalid autocomplete value for textinput. Did you mean \"off\" instead of %q?" $autocomplete)) }}

    +{{ end }} diff --git a/themes/after-dark/layouts/shortcodes/hackcss-throbber.html b/themes/after-dark/layouts/shortcodes/hackcss-throbber.html new file mode 100644 index 0000000..a8cdb4a --- /dev/null +++ b/themes/after-dark/layouts/shortcodes/hackcss-throbber.html @@ -0,0 +1 @@ +{{ partial "components/throbber.html" . }} diff --git a/themes/after-dark/layouts/shortcodes/navmenu.html b/themes/after-dark/layouts/shortcodes/navmenu.html new file mode 100644 index 0000000..5c516b8 --- /dev/null +++ b/themes/after-dark/layouts/shortcodes/navmenu.html @@ -0,0 +1,20 @@ + + +{{ $name := .Get 0 | default "main" }} +{{ $entries := index .Site.Menus $name }} +{{ $page := .Page.Page }} +{{ with $.Site.Params.layout.menu }} + {{ $settings := index . $name | default dict }} + {{ partial "components/navmenu.html" (dict "name" $name "entries" $entries "settings" $settings "page" $page)}} +{{ else }} + {{ partial "components/navmenu.html" (dict "name" $name "entries" $entries "settings" dict "page" $page)}} +{{ end }} diff --git a/themes/after-dark/package.json b/themes/after-dark/package.json new file mode 100644 index 0000000..a7e8ecf --- /dev/null +++ b/themes/after-dark/package.json @@ -0,0 +1,48 @@ +{ + "name": "after-dark", + "version": "7.2.1", + "description": "Semantic Design System for Hugo.", + "author": "Josh Habdas (https://habd.as)", + "keywords": [ + "hugo", + "hackcss", + "lazysizes", + "lodash", + "vue", + "fuse.js", + "mark.js" + ], + "homepage": "https://after-dark.habd.as", + "repository": { + "type": "git", + "url": "https://git.habd.as/comfusion/after-dark.git" + }, + "standard-version": { + "scripts": { + "posttag": "git tag --sign $(git describe --tags $(git rev-list --tags --max-count=1)) $(git describe --tags $(git rev-list --tags --max-count=1))^{} -f -m \"$(git log -1 --pretty=%B)\" -m \"-----BEGIN DIST INTEGRITY-----\" -m \"$(npm pack --dry-run --json . | grep integrity | cut -d ',' -f1 | cut -d ':' -f2 | tr -d '\" ')\" -m \"-----END DIST INTEGRITY-----\"" + } + }, + "scripts": { + "update:lazysizes": "npm up lazysizes && cp -i node_modules/lazysizes/lazysizes.min.js static/js", + "update:lodash:custom": "./node_modules/.bin/lodash include=debounce -p -o static/js/lodash.custom.min.js", + "update:fuse": "npm up fuse.js && cp -i node_modules/fuse.js/dist/fuse.min.js static/js", + "update:vue": "npm up vue && cp -i node_modules/vue/dist/vue.min.js static/js", + "update:mark": "npm up mark.js && cp -i node_modules/mark.js/dist/mark.min.js static/js", + "update:hackcss": "npm up hackcss && cp -ir node_modules/hack/dist/ assets/css/vendor/hack/", + "test": "while true; do head -n 100 /dev/urandom; sleep 0.1; done | hexdump -C | grep 'ca fe'", + "integrity": "npm pack --dry-run --json . | grep integrity | cut -d ',' -f1 | cut -d ':' -f2 | tr -d '\" '", + "release": "standard-version" + }, + "devDependencies": { + "atom-one-chroma": "^2.0.0", + "fetch-inject": "^2.0.2", + "fuse.js": "^3.3.0", + "hack": "^0.8.1", + "lazysizes": "^4.1.4", + "lodash-cli": "^4.17.5", + "mark.js": "^8.11.1", + "standard-version": "^4.4.0", + "vue": "^2.5.16" + }, + "license": "WTFPL" +} diff --git a/themes/after-dark/static/css/syntax.css b/themes/after-dark/static/css/syntax.css new file mode 100644 index 0000000..732bf56 --- /dev/null +++ b/themes/after-dark/static/css/syntax.css @@ -0,0 +1 @@ +.highlight,pre.highlight{background:#000;color:#abb2bf}.highlight pre{background:#000}.highlight .ge{font-style:italic}.highlight .gs{font-weight:700}.highlight .ow{font-weight:700}.highlight .n,.highlight .nf,.highlight .nn,.highlight .o,.highlight .p{color:#abb2bf}.highlight .c,.highlight .c1,.highlight .cm,.highlight .cp,.highlight .cs{color:#5c6370;font-style:italic}.highlight .sr,.highlight .ss{color:#56b6c2}.highlight .k,.highlight .kc,.highlight .kd,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kt{color:#c678dd}.highlight .l,.highlight .ld,.highlight .s,.highlight .s1,.highlight .s2,.highlight .sb,.highlight .sc,.highlight .sd,.highlight .se,.highlight .sh,.highlight .si,.highlight .sx{color:#98c379}.highlight .nt,.highlight .nx,.highlight .vi{color:#e06c75}.highlight .il,.highlight .m,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo,.highlight .na{color:#d19a66}.highlight .bp,.highlight .nb,.highlight .nc,.highlight .nd,.highlight .ne,.highlight .ni,.highlight .nl,.highlight .no,.highlight .nv,.highlight .py,.highlight .vc,.highlight .vg{color:#e5c07b}.highlight .err{color:#fff;background-color:#e05252}.highlight .gd{color:#e05252}.highlight .gi{color:#43d08a}.highlight .w{color:#f8f8f2}.highlight .cpf{color:navy}.highlight .gu{color:#75715e}.highlight .lineno{color:#636d83;user-select:none}.highlight .ln{color:#636d83;user-select:none}.highlight .ln:after{content:" "}.highlight .hll{color:#abb2bf;background-color:#3a3f4b}.highlight .hl{color:#abb2bf;background-color:#3a3f4b}.highlight .language-json .w+.s2{color:#e06c75}.highlight .language-json .kc{color:#56b6c2} diff --git a/themes/after-dark/static/js/fuse.min.js b/themes/after-dark/static/js/fuse.min.js new file mode 100644 index 0000000..fae19ef --- /dev/null +++ b/themes/after-dark/static/js/fuse.min.js @@ -0,0 +1,9 @@ +/*! + * Fuse.js v3.3.0 - Lightweight fuzzy-search (http://fusejs.io) + * + * Copyright (c) 2012-2017 Kirollos Risk (http://kiro.me) + * All Rights Reserved. Apache Software License 2.0 + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("Fuse",[],t):"object"==typeof exports?exports.Fuse=t():e.Fuse=t()}(this,function(){return function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var r={};return t.m=e,t.c=r,t.i=function(e){return e},t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=8)}([function(e,t,r){"use strict";e.exports=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===Object.prototype.toString.call(e)}},function(e,t,r){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var o=function(){function e(e,t){for(var r=0;rr)return i(e,this.pattern,n);var o=this.options,s=o.location,c=o.distance,h=o.threshold,l=o.findAllMatches,u=o.minMatchCharLength;return a(e,this.pattern,this.patternAlphabet,{location:s,distance:c,threshold:h,findAllMatches:l,minMatchCharLength:u})}}]),e}();e.exports=c},function(e,t,r){"use strict";var n=r(0),o=function e(t,r,o){if(r){var i=r.indexOf("."),a=r,s=null;-1!==i&&(a=r.slice(0,i),s=r.slice(i+1));var c=t[a];if(null!==c&&void 0!==c)if(s||"string"!=typeof c&&"number"!=typeof c)if(n(c))for(var h=0,l=c.length;h0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=[],n=-1,o=-1,i=0,a=e.length;i=t&&r.push([n,o]),n=-1)}return e[i-1]&&i-n>=t&&r.push([n,i-1]),r}},function(e,t,r){"use strict";e.exports=function(e){for(var t={},r=e.length,n=0;n2&&void 0!==arguments[2]?arguments[2]:/ +/g,n=new RegExp(t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&").replace(r,"|")),o=e.match(n),i=!!o,a=[];if(i)for(var s=0,c=o.length;s=P;T-=1){var E=T-1,K=r[e.charAt(E)];if(K&&(S[E]=1),z[T]=(z[T+1]<<1|1)&K,0!==I&&(z[T]|=(L[T+1]|L[T])<<1|1|L[T+1]),z[T]&C&&(w=n(t,{errors:I,currentLocation:E,expectedLocation:g,distance:h}))<=m){if(m=w,(k=E)<=g)break;P=Math.max(1,2*g-k)}}if(n(t,{errors:I+1,currentLocation:g,expectedLocation:g,distance:h})>m)break;L=z}return{isMatch:k>=0,score:0===w?.001:w,matchedIndices:o(S,p)}}},function(e,t,r){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var o=function(){function e(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:"",t=[];if(this.options.tokenize)for(var r=e.split(this.options.tokenSeparator),n=0,o=r.length;n0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1],r=this.list,n={},o=[];if("string"==typeof r[0]){for(var i=0,a=r.length;i1)throw new Error("Key weight has to be > 0 and <= 1");d=d.name}else s[d]={weight:1};this._analyze({key:d,value:this.options.getFn(l,d),record:l,index:c},{resultMap:n,results:o,tokenSearchers:e,fullSearcher:t})}return{weights:s,results:o}}},{key:"_analyze",value:function(e,t){var r=e.key,n=e.arrayIndex,o=void 0===n?-1:n,i=e.value,a=e.record,c=e.index,h=t.tokenSearchers,l=void 0===h?[]:h,u=t.fullSearcher,f=void 0===u?[]:u,d=t.resultMap,v=void 0===d?{}:d,p=t.results,g=void 0===p?[]:p;if(void 0!==i&&null!==i){var y=!1,m=-1,k=0;if("string"==typeof i){this._log("\nKey: "+(""===r?"-":r));var x=f.search(i);if(this._log('Full text: "'+i+'", score: '+x.score),this.options.tokenize){for(var S=i.split(this.options.tokenSeparator),M=[],b=0;b-1&&(P=(P+m)/2),this._log("Score average:",P);var j=!this.options.tokenize||!this.options.matchAllTokens||k>=l.length;if(this._log("\nCheck Matches: "+j),(y||x.isMatch)&&j){var z=v[c];z?z.output.push({key:r,arrayIndex:o,value:i,score:P,matchedIndices:x.matchedIndices}):(v[c]={item:a,output:[{key:r,arrayIndex:o,value:i,score:P,matchedIndices:x.matchedIndices}]},g.push(v[c]))}}else if(s(i))for(var T=0,E=i.length;T-1&&(a.arrayIndex=i.arrayIndex),t.matches.push(a)}}}),this.options.includeScore&&r.push(function(e,t){t.score=e.score});for(var n=0,o=e.length;n49?function(){m(h,{timeout:g}),g!==d.ricTimeout&&(g=d.ricTimeout)}:A(function(){k(h)},!0);return function(a){var d;(a=a===!0)&&(g=33),b||(b=!0,d=e-(f.now()-c),0>d&&(d=0),a||9>d?i():k(i,d))}},C=function(a){var b,c,d=99,e=function(){b=null,a()},g=function(){var a=f.now()-c;d>a?k(g,d-a):(m||e)(e)};return function(){c=f.now(),b||(b=k(g,d))}};!function(){var b,c={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",errorClass:"lazyerror",autosizesClass:"lazyautosizes",srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",minSize:40,customMedia:{},init:!0,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:!0,ricTimeout:0,throttleDelay:125};d=a.lazySizesConfig||a.lazysizesConfig||{};for(b in c)b in d||(d[b]=c[b]);a.lazySizesConfig=d,k(function(){d.init&&F()})}();var D=function(){var g,l,m,o,p,y,D,F,G,H,I,J,K,L,M=/^img$/i,N=/^iframe$/i,O="onscroll"in a&&!/(gle|ing)bot/.test(navigator.userAgent),P=0,Q=0,R=0,S=-1,T=function(a){R--,a&&a.target&&u(a.target,T),(!a||0>R||!a.target)&&(R=0)},U=function(a,c){var d,f=a,g="hidden"==x(b.body,"visibility")||"hidden"!=x(a.parentNode,"visibility")&&"hidden"!=x(a,"visibility");for(F-=c,I+=c,G-=c,H+=c;g&&(f=f.offsetParent)&&f!=b.body&&f!=e;)g=(x(f,"opacity")||1)>0,g&&"visible"!=x(f,"overflow")&&(d=f.getBoundingClientRect(),g=H>d.left&&Gd.top-1&&FR&&(a=r.length)){f=0,S++,null==K&&("expand"in d||(d.expand=e.clientHeight>500&&e.clientWidth>500?500:370),J=d.expand,K=J*d.expFactor),K>Q&&1>R&&S>2&&o>2&&!b.hidden?(Q=K,S=0):Q=o>1&&S>1&&6>R?J:P;for(;a>f;f++)if(r[f]&&!r[f]._lazyRace)if(O)if((p=r[f][i]("data-expand"))&&(m=1*p)||(m=Q),q!==m&&(y=innerWidth+m*L,D=innerHeight+m,n=-1*m,q=m),h=r[f].getBoundingClientRect(),(I=h.bottom)>=n&&(F=h.top)<=D&&(H=h.right)>=n*L&&(G=h.left)<=y&&(I||H||G||F)&&(d.loadHidden||"hidden"!=x(r[f],"visibility"))&&(l&&3>R&&!p&&(3>o||4>S)||U(r[f],m))){if(ba(r[f]),k=!0,R>9)break}else!k&&l&&!j&&4>R&&4>S&&o>2&&(g[0]||d.preloadAfterLoad)&&(g[0]||!p&&(I||H||G||F||"auto"!=r[f][i](d.sizesAttr)))&&(j=g[0]||r[f]);else ba(r[f]);j&&!k&&ba(j)}},W=B(V),X=function(a){s(a.target,d.loadedClass),t(a.target,d.loadingClass),u(a.target,Z),v(a.target,"lazyloaded")},Y=A(X),Z=function(a){Y({target:a.target})},$=function(a,b){try{a.contentWindow.location.replace(b)}catch(c){a.src=b}},_=function(a){var b,c=a[i](d.srcsetAttr);(b=d.customMedia[a[i]("data-media")||a[i]("media")])&&a.setAttribute("media",b),c&&a.setAttribute("srcset",c)},aa=A(function(a,b,c,e,f){var g,h,j,l,o,p;(o=v(a,"lazybeforeunveil",b)).defaultPrevented||(e&&(c?s(a,d.autosizesClass):a.setAttribute("sizes",e)),h=a[i](d.srcsetAttr),g=a[i](d.srcAttr),f&&(j=a.parentNode,l=j&&n.test(j.nodeName||"")),p=b.firesLoad||"src"in a&&(h||g||l),o={target:a},p&&(u(a,T,!0),clearTimeout(m),m=k(T,2500),s(a,d.loadingClass),u(a,Z,!0)),l&&q.call(j.getElementsByTagName("source"),_),h?a.setAttribute("srcset",h):g&&!l&&(N.test(a.nodeName)?$(a,g):a.src=g),f&&(h||l)&&w(a,{src:g})),a._lazyRace&&delete a._lazyRace,t(a,d.lazyClass),z(function(){(!p||a.complete&&a.naturalWidth>1)&&(p?T(o):R--,X(o))},!0)}),ba=function(a){var b,c=M.test(a.nodeName),e=c&&(a[i](d.sizesAttr)||a[i]("sizes")),f="auto"==e;(!f&&l||!c||!a[i]("src")&&!a.srcset||a.complete||r(a,d.errorClass)||!r(a,d.lazyClass))&&(b=v(a,"lazyunveilread").detail,f&&E.updateElem(a,!0,a.offsetWidth),a._lazyRace=!0,R++,aa(a,b,f,e,c))},ca=function(){if(!l){if(f.now()-p<999)return void k(ca,999);var a=C(function(){d.loadMode=3,W()});l=!0,d.loadMode=3,W(),j("scroll",function(){3==d.loadMode&&(d.loadMode=2),a()},!0)}};return{_:function(){p=f.now(),c.elements=b.getElementsByClassName(d.lazyClass),g=b.getElementsByClassName(d.lazyClass+" "+d.preloadClass),L=d.hFac,j("scroll",W,!0),j("resize",W,!0),a.MutationObserver?new MutationObserver(W).observe(e,{childList:!0,subtree:!0,attributes:!0}):(e[h]("DOMNodeInserted",W,!0),e[h]("DOMAttrModified",W,!0),setInterval(W,999)),j("hashchange",W,!0),["focus","mouseover","click","load","transitionend","animationend","webkitAnimationEnd"].forEach(function(a){b[h](a,W,!0)}),/d$|^c/.test(b.readyState)?ca():(j("load",ca),b[h]("DOMContentLoaded",W),k(ca,2e4)),c.elements.length?(V(),z._lsFlush()):W()},checkElems:W,unveil:ba}}(),E=function(){var a,c=A(function(a,b,c,d){var e,f,g;if(a._lazysizesWidth=d,d+="px",a.setAttribute("sizes",d),n.test(b.nodeName||""))for(e=b.getElementsByTagName("source"),f=0,g=e.length;g>f;f++)e[f].setAttribute("sizes",d);c.detail.dataAttr||w(a,c.detail)}),e=function(a,b,d){var e,f=a.parentNode;f&&(d=y(a,f,d),e=v(a,"lazybeforesizes",{width:d,dataAttr:!!b}),e.defaultPrevented||(d=e.detail.width,d&&d!==a._lazysizesWidth&&c(a,f,e,d)))},f=function(){var b,c=a.length;if(c)for(b=0;c>b;b++)e(a[b])},g=C(f);return{_:function(){a=b.getElementsByClassName(d.autosizesClass),j("resize",g)},checkElems:g,updateElem:e}}(),F=function(){F.i||(F.i=!0,E._(),D._())};return c={cfg:d,autoSizer:E,loader:D,init:F,uP:w,aC:s,rC:t,hC:r,fire:v,gW:y,rAF:z}}}); \ No newline at end of file diff --git a/themes/after-dark/static/js/lodash.custom.min.js b/themes/after-dark/static/js/lodash.custom.min.js new file mode 100644 index 0000000..e369cf5 --- /dev/null +++ b/themes/after-dark/static/js/lodash.custom.min.js @@ -0,0 +1,10 @@ +/** + * @license + * Lodash (Custom Build) lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE + * Build: `lodash include="debounce" -p -o static/js/lodash.custom.min.js` + */ +;(function(){function e(){}function t(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function n(e){return null!=e&&typeof e=="object"}function o(e){var t;if(!(t=typeof e=="symbol")&&(t=n(e))){if(null==e)e=e===i?"[object Undefined]":"[object Null]";else if(v&&v in Object(e)){t=d.call(e,v);var o=e[v];try{e[v]=i;var r=true}catch(e){}var u=j.call(e);r&&(t?e[v]=o:delete e[v]),e=u}else e=j.call(e);t="[object Symbol]"==e}return t}function r(e){if(typeof e=="number")return e;if(o(e))return u; +if(t(e)&&(e=typeof e.valueOf=="function"?e.valueOf():e,e=t(e)?e+"":e),typeof e!="string")return 0===e?e:+e;e=e.replace(f,"");var n=l.test(e);return n||a.test(e)?s(e.slice(2),n?2:8):c.test(e)?u:+e}var i,u=NaN,f=/^\s+|\s+$/g,c=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,a=/^0o[0-7]+$/i,s=parseInt,b=typeof self=="object"&&self&&self.Object===Object&&self,p=typeof global=="object"&&global&&global.Object===Object&&global||b||Function("return this")(),y=(b=typeof exports=="object"&&exports&&!exports.nodeType&&exports)&&typeof module=="object"&&module&&!module.nodeType&&module,m=Object.prototype,d=m.hasOwnProperty,j=m.toString,v=(m=p.Symbol)?m.toStringTag:i,g=Math.max,O=Math.min,x=function(){ +return p.Date.now()};e.debounce=function(e,n,o){function u(t){var n=s,o=b;return s=b=i,j=t,y=e.apply(o,n)}function f(e){var t=e-d;return e-=j,d===i||t>=n||0>t||h&&e>=p}function c(){var e=x();if(f(e))return l(e);var t,o=setTimeout;t=e-j,e=n-(e-d),t=h?O(e,p-t):e,m=o(c,t)}function l(e){return m=i,T&&s?u(e):(s=b=i,y)}function a(){var e=x(),t=f(e);if(s=arguments,b=this,d=e,t){if(m===i)return j=e=d,m=setTimeout(c,n),v?u(e):y;if(h)return m=setTimeout(c,n),u(d)}return m===i&&(m=setTimeout(c,n)),y}var s,b,p,y,m,d,j=0,v=false,h=false,T=true; +if(typeof e!="function")throw new TypeError("Expected a function");return n=r(n)||0,t(o)&&(v=!!o.leading,p=(h="maxWait"in o)?g(r(o.maxWait)||0,n):p,T="trailing"in o?!!o.trailing:T),a.cancel=function(){m!==i&&clearTimeout(m),j=0,s=d=b=m=i},a.flush=function(){return m===i?y:l(x())},a},e.isObject=t,e.isObjectLike=n,e.isSymbol=o,e.now=x,e.toNumber=r,e.VERSION="4.17.5",typeof define=="function"&&typeof define.amd=="object"&&define.amd?(p._=e, define(function(){return e})):y?((y.exports=e)._=e,b._=e):p._=e; +}).call(this); \ No newline at end of file diff --git a/themes/after-dark/static/js/mark.min.js b/themes/after-dark/static/js/mark.min.js new file mode 100644 index 0000000..1eea053 --- /dev/null +++ b/themes/after-dark/static/js/mark.min.js @@ -0,0 +1,7 @@ +/*!*************************************************** +* mark.js v8.11.1 +* https://markjs.io/ +* Copyright (c) 2014–2018, Julian Kühnel +* Released under the MIT license https://git.io/vwTVl +*****************************************************/ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Mark=t()}(this,function(){"use strict";var e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},n=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5e3;t(this,e),this.ctx=n,this.iframes=r,this.exclude=i,this.iframesTimeout=o}return n(e,[{key:"getContexts",value:function(){var e=[];return(void 0!==this.ctx&&this.ctx?NodeList.prototype.isPrototypeOf(this.ctx)?Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?this.ctx:"string"==typeof this.ctx?Array.prototype.slice.call(document.querySelectorAll(this.ctx)):[this.ctx]:[]).forEach(function(t){var n=e.filter(function(e){return e.contains(t)}).length>0;-1!==e.indexOf(t)||n||e.push(t)}),e}},{key:"getIframeContents",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},r=void 0;try{var i=e.contentWindow;if(r=i.document,!i||!r)throw new Error("iframe inaccessible")}catch(e){n()}r&&t(r)}},{key:"isIframeBlank",value:function(e){var t=e.getAttribute("src").trim();return"about:blank"===e.contentWindow.location.href&&"about:blank"!==t&&t}},{key:"observeIframeLoad",value:function(e,t,n){var r=this,i=!1,o=null,a=function a(){if(!i){i=!0,clearTimeout(o);try{r.isIframeBlank(e)||(e.removeEventListener("load",a),r.getIframeContents(e,t,n))}catch(e){n()}}};e.addEventListener("load",a),o=setTimeout(a,this.iframesTimeout)}},{key:"onIframeReady",value:function(e,t,n){try{"complete"===e.contentWindow.document.readyState?this.isIframeBlank(e)?this.observeIframeLoad(e,t,n):this.getIframeContents(e,t,n):this.observeIframeLoad(e,t,n)}catch(e){n()}}},{key:"waitForIframes",value:function(e,t){var n=this,r=0;this.forEachIframe(e,function(){return!0},function(e){r++,n.waitForIframes(e.querySelector("html"),function(){--r||t()})},function(e){e||t()})}},{key:"forEachIframe",value:function(t,n,r){var i=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},a=t.querySelectorAll("iframe"),s=a.length,c=0;a=Array.prototype.slice.call(a);var u=function(){--s<=0&&o(c)};s||u(),a.forEach(function(t){e.matches(t,i.exclude)?u():i.onIframeReady(t,function(e){n(t)&&(c++,r(e)),u()},u)})}},{key:"createIterator",value:function(e,t,n){return document.createNodeIterator(e,t,n,!1)}},{key:"createInstanceOnIframe",value:function(t){return new e(t.querySelector("html"),this.iframes)}},{key:"compareNodeIframe",value:function(e,t,n){if(e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_PRECEDING){if(null===t)return!0;if(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING)return!0}return!1}},{key:"getIteratorNode",value:function(e){var t=e.previousNode();return{prevNode:t,node:null===t?e.nextNode():e.nextNode()&&e.nextNode()}}},{key:"checkIframeFilter",value:function(e,t,n,r){var i=!1,o=!1;return r.forEach(function(e,t){e.val===n&&(i=t,o=e.handled)}),this.compareNodeIframe(e,t,n)?(!1!==i||o?!1===i||o||(r[i].handled=!0):r.push({val:n,handled:!0}),!0):(!1===i&&r.push({val:n,handled:!1}),!1)}},{key:"handleOpenIframes",value:function(e,t,n,r){var i=this;e.forEach(function(e){e.handled||i.getIframeContents(e.val,function(e){i.createInstanceOnIframe(e).forEachNode(t,n,r)})})}},{key:"iterateThroughNodes",value:function(e,t,n,r,i){for(var o,a=this,s=this.createIterator(t,e,r),c=[],u=[],l=void 0,h=void 0;void 0,o=a.getIteratorNode(s),h=o.prevNode,l=o.node;)this.iframes&&this.forEachIframe(t,function(e){return a.checkIframeFilter(l,h,e,c)},function(t){a.createInstanceOnIframe(t).forEachNode(e,function(e){return u.push(e)},r)}),u.push(l);u.forEach(function(e){n(e)}),this.iframes&&this.handleOpenIframes(c,e,n,r),i()}},{key:"forEachNode",value:function(e,t,n){var r=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},o=this.getContexts(),a=o.length;a||i(),o.forEach(function(o){var s=function(){r.iterateThroughNodes(e,o,t,n,function(){--a<=0&&i()})};r.iframes?r.waitForIframes(o,s):s()})}}],[{key:"matches",value:function(e,t){var n="string"==typeof t?[t]:t,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(r){var i=!1;return n.every(function(t){return!r.call(e,t)||(i=!0,!1)}),i}return!1}}]),e}(),o=function(){function o(e){t(this,o),this.ctx=e,this.ie=!1;var n=window.navigator.userAgent;(n.indexOf("MSIE")>-1||n.indexOf("Trident")>-1)&&(this.ie=!0)}return n(o,[{key:"log",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"debug",r=this.opt.log;this.opt.debug&&"object"===(void 0===r?"undefined":e(r))&&"function"==typeof r[n]&&r[n]("mark.js: "+t)}},{key:"escapeStr",value:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}},{key:"createRegExp",value:function(e){return"disabled"!==this.opt.wildcards&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),"disabled"!==this.opt.wildcards&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e)}},{key:"createSynonymsRegExp",value:function(e){var t=this.opt.synonyms,n=this.opt.caseSensitive?"":"i",r=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(var i in t)if(t.hasOwnProperty(i)){var o=t[i],a="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(i):this.escapeStr(i),s="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(o):this.escapeStr(o);""!==a&&""!==s&&(e=e.replace(new RegExp("("+this.escapeStr(a)+"|"+this.escapeStr(s)+")","gm"+n),r+"("+this.processSynomyms(a)+"|"+this.processSynomyms(s)+")"+r))}return e}},{key:"processSynomyms",value:function(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}},{key:"setupWildcardsRegExp",value:function(e){return(e=e.replace(/(?:\\)*\?/g,function(e){return"\\"===e.charAt(0)?"?":""})).replace(/(?:\\)*\*/g,function(e){return"\\"===e.charAt(0)?"*":""})}},{key:"createWildcardsRegExp",value:function(e){var t="withSpaces"===this.opt.wildcards;return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}},{key:"setupIgnoreJoinersRegExp",value:function(e){return e.replace(/[^(|)\\]/g,function(e,t,n){var r=n.charAt(t+1);return/[(|)\\]/.test(r)||""===r?e:e+"\0"})}},{key:"createJoinersRegExp",value:function(e){var t=[],n=this.opt.ignorePunctuation;return Array.isArray(n)&&n.length&&t.push(this.escapeStr(n.join(""))),this.opt.ignoreJoiners&&t.push("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join("["+t.join("")+"]*"):e}},{key:"createDiacriticsRegExp",value:function(e){var t=this.opt.caseSensitive?"":"i",n=this.opt.caseSensitive?["aàáảãạăằắẳẵặâầấẩẫậäåāą","AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćč","CÇĆČ","dđď","DĐĎ","eèéẻẽẹêềếểễệëěēę","EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïī","IÌÍỈĨỊÎÏĪ","lł","LŁ","nñňń","NÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøō","OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rř","RŘ","sšśșş","SŠŚȘŞ","tťțţ","TŤȚŢ","uùúủũụưừứửữựûüůū","UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿ","YÝỲỶỸỴŸ","zžżź","ZŽŻŹ"]:["aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćčCÇĆČ","dđďDĐĎ","eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïīIÌÍỈĨỊÎÏĪ","lłLŁ","nñňńNÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rřRŘ","sšśșşSŠŚȘŞ","tťțţTŤȚŢ","uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿYÝỲỶỸỴŸ","zžżźZŽŻŹ"],r=[];return e.split("").forEach(function(i){n.every(function(n){if(-1!==n.indexOf(i)){if(r.indexOf(n)>-1)return!1;e=e.replace(new RegExp("["+n+"]","gm"+t),"["+n+"]"),r.push(n)}return!0})}),e}},{key:"createMergedBlanksRegExp",value:function(e){return e.replace(/[\s]+/gim,"[\\s]+")}},{key:"createAccuracyRegExp",value:function(e){var t=this,n=this.opt.accuracy,r="string"==typeof n?n:n.value,i="";switch(("string"==typeof n?[]:n.limiters).forEach(function(e){i+="|"+t.escapeStr(e)}),r){case"partially":default:return"()("+e+")";case"complementary":return"()([^"+(i="\\s"+(i||this.escapeStr("!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~¡¿")))+"]*"+e+"[^"+i+"]*)";case"exactly":return"(^|\\s"+i+")("+e+")(?=$|\\s"+i+")"}}},{key:"getSeparatedKeywords",value:function(e){var t=this,n=[];return e.forEach(function(e){t.opt.separateWordSearch?e.split(" ").forEach(function(e){e.trim()&&-1===n.indexOf(e)&&n.push(e)}):e.trim()&&-1===n.indexOf(e)&&n.push(e)}),{keywords:n.sort(function(e,t){return t.length-e.length}),length:n.length}}},{key:"isNumeric",value:function(e){return Number(parseFloat(e))==e}},{key:"checkRanges",value:function(e){var t=this;if(!Array.isArray(e)||"[object Object]"!==Object.prototype.toString.call(e[0]))return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];var n=[],r=0;return e.sort(function(e,t){return e.start-t.start}).forEach(function(e){var i=t.callNoMatchOnInvalidRanges(e,r),o=i.start,a=i.end;i.valid&&(e.start=o,e.length=a-o,n.push(e),r=a)}),n}},{key:"callNoMatchOnInvalidRanges",value:function(e,t){var n=void 0,r=void 0,i=!1;return e&&void 0!==e.start?(r=(n=parseInt(e.start,10))+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&r-t>0&&r-n>0?i=!0:(this.log("Ignoring invalid or overlapping range: "+JSON.stringify(e)),this.opt.noMatch(e))):(this.log("Ignoring invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:n,end:r,valid:i}}},{key:"checkWhitespaceRanges",value:function(e,t,n){var r=void 0,i=!0,o=n.length,a=t-o,s=parseInt(e.start,10)-a;return(r=(s=s>o?o:s)+parseInt(e.length,10))>o&&(r=o,this.log("End range automatically set to the max value of "+o)),s<0||r-s<0||s>o||r>o?(i=!1,this.log("Invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)):""===n.substring(s,r).replace(/\s+/g,"")&&(i=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:s,end:r,valid:i}}},{key:"getTextNodes",value:function(e){var t=this,n="",r=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,function(e){r.push({start:n.length,end:(n+=e.textContent).length,node:e})},function(e){return t.matchesExclude(e.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},function(){e({value:n,nodes:r})})}},{key:"matchesExclude",value:function(e){return i.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}},{key:"wrapRangeInTextNode",value:function(e,t,n){var r=this.opt.element?this.opt.element:"mark",i=e.splitText(t),o=i.splitText(n-t),a=document.createElement(r);return a.setAttribute("data-markjs","true"),this.opt.className&&a.setAttribute("class",this.opt.className),a.textContent=i.textContent,i.parentNode.replaceChild(a,i),o}},{key:"wrapRangeInMappedTextNode",value:function(e,t,n,r,i){var o=this;e.nodes.every(function(a,s){var c=e.nodes[s+1];if(void 0===c||c.start>t){if(!r(a.node))return!1;var u=t-a.start,l=(n>a.end?a.end:n)-a.start,h=e.value.substr(0,a.start),f=e.value.substr(l+a.start);if(a.node=o.wrapRangeInTextNode(a.node,u,l),e.value=h+f,e.nodes.forEach(function(t,n){n>=s&&(e.nodes[n].start>0&&n!==s&&(e.nodes[n].start-=l),e.nodes[n].end-=l)}),n-=l,i(a.node.previousSibling,a.start),!(n>a.end))return!1;t=a.end}return!0})}},{key:"wrapMatches",value:function(e,t,n,r,i){var o=this,a=0===t?0:t+1;this.getTextNodes(function(t){t.nodes.forEach(function(t){t=t.node;for(var i=void 0;null!==(i=e.exec(t.textContent))&&""!==i[a];)if(n(i[a],t)){var s=i.index;if(0!==a)for(var c=1;ce.id;)n--;bt.splice(n+1,0,e)}else bt.push(e);Ct||(Ct=!0,Ze(At))}}(this)},St.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||P(e)||this.deep){var t=this.value;if(this.value=e,this.user)try{this.cb.call(this.vm,e,t)}catch(e){Fe(e,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,e,t)}}},St.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},St.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},St.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||f(this.vm._watchers,this);for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1}};var Tt={enumerable:!0,configurable:!0,get:$,set:$};function Et(e,t,n){Tt.get=function(){return this[t][n]},Tt.set=function(e){this[t][n]=e},Object.defineProperty(e,n,Tt)}function jt(e){e._watchers=[];var t=e.$options;t.props&&function(n,r){var i=n.$options.propsData||{},o=n._props={},a=n.$options._propKeys=[];n.$parent&&ge(!1);var e=function(e){a.push(e);var t=Ie(e,r,i,n);Ce(o,e,t),e in n||Et(n,"_props",e)};for(var t in r)e(t);ge(!0)}(e,t.props),t.methods&&function(e,t){e.$options.props;for(var n in t)e[n]=null==t[n]?$:v(t[n],e)}(e,t.methods),t.data?function(e){var t=e.$options.data;l(t=e._data="function"==typeof t?function(e,t){se();try{return e.call(t,t)}catch(e){return Fe(e,t,"data()"),{}}finally{ce()}}(t,e):t||{})||(t={});var n=Object.keys(t),r=e.$options.props,i=(e.$options.methods,n.length);for(;i--;){var o=n[i];r&&p(r,o)||(void 0,36!==(a=(o+"").charCodeAt(0))&&95!==a&&Et(e,"_data",o))}var a;we(t,!0)}(e):we(e._data={},!0),t.computed&&function(e,t){var n=e._computedWatchers=Object.create(null),r=Y();for(var i in t){var o=t[i],a="function"==typeof o?o:o.get;r||(n[i]=new St(e,a||$,$,Nt)),i in e||Lt(e,i,o)}}(e,t.computed),t.watch&&t.watch!==G&&function(e,t){for(var n in t){var r=t[n];if(Array.isArray(r))for(var i=0;iparseInt(this.max)&&bn(a,s[0],s,this._vnode)),t.data.keepAlive=!0}return t||e&&e[0]}}};$n=hn,Cn={get:function(){return j}},Object.defineProperty($n,"config",Cn),$n.util={warn:re,extend:m,mergeOptions:Ne,defineReactive:Ce},$n.set=xe,$n.delete=ke,$n.nextTick=Ze,$n.options=Object.create(null),k.forEach(function(e){$n.options[e+"s"]=Object.create(null)}),m(($n.options._base=$n).options.components,kn),$n.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(-1=a&&l()};setTimeout(function(){c\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,oo="[a-zA-Z_][\\w\\-\\.]*",ao="((?:"+oo+"\\:)?"+oo+")",so=new RegExp("^<"+ao),co=/^\s*(\/?)>/,lo=new RegExp("^<\\/"+ao+"[^>]*>"),uo=/^]+>/i,fo=/^",""":'"',"&":"&"," ":"\n"," ":"\t"},go=/&(?:lt|gt|quot|amp);/g,_o=/&(?:lt|gt|quot|amp|#10|#9);/g,bo=s("pre,textarea",!0),$o=function(e,t){return e&&bo(e)&&"\n"===t[0]};var wo,Co,xo,ko,Ao,Oo,So,To,Eo=/^@|^v-on:/,jo=/^v-|^@|^:/,No=/([^]*?)\s+(?:in|of)\s+([^]*)/,Lo=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,Io=/^\(|\)$/g,Mo=/:(.*)$/,Do=/^:|^v-bind:/,Po=/\.[^.]+/g,Fo=e(eo);function Ro(e,t,n){return{type:1,tag:e,attrsList:t,attrsMap:function(e){for(var t={},n=0,r=e.length;n]*>)","i")),n=i.replace(t,function(e,t,n){return r=n.length,ho(o)||"noscript"===o||(t=t.replace(//g,"$1").replace(//g,"$1")),$o(o,t)&&(t=t.slice(1)),d.chars&&d.chars(t),""});a+=i.length-n.length,i=n,A(o,a-r,a)}else{var s=i.indexOf("<");if(0===s){if(fo.test(i)){var c=i.indexOf("--\x3e");if(0<=c){d.shouldKeepComment&&d.comment(i.substring(4,c)),C(c+3);continue}}if(po.test(i)){var l=i.indexOf("]>");if(0<=l){C(l+2);continue}}var u=i.match(uo);if(u){C(u[0].length);continue}var f=i.match(lo);if(f){var p=a;C(f[0].length),A(f[1],p,a);continue}var _=x();if(_){k(_),$o(v,i)&&C(1);continue}}var b=void 0,$=void 0,w=void 0;if(0<=s){for($=i.slice(s);!(lo.test($)||so.test($)||fo.test($)||po.test($)||(w=$.indexOf("<",1))<0);)s+=w,$=i.slice(s);b=i.substring(0,s),C(s)}s<0&&(b=i,i=""),d.chars&&b&&d.chars(b)}if(i===e){d.chars&&d.chars(i);break}}function C(e){a+=e,i=i.substring(e)}function x(){var e=i.match(so);if(e){var t,n,r={tagName:e[1],attrs:[],start:a};for(C(e[0].length);!(t=i.match(co))&&(n=i.match(io));)C(n[0].length),r.attrs.push(n);if(t)return r.unarySlash=t[1],C(t[0].length),r.end=a,r}}function k(e){var t=e.tagName,n=e.unarySlash;m&&("p"===v&&ro(t)&&A(v),g(t)&&v===t&&A(t));for(var r,i,o,a=y(t)||!!n,s=e.attrs.length,c=new Array(s),l=0;l-1"+("true"===d?":("+l+")":":_q("+l+","+d+")")),Ar(c,"change","var $$a="+l+",$$el=$event.target,$$c=$$el.checked?("+d+"):("+v+");if(Array.isArray($$a)){var $$v="+(f?"_n("+p+")":p)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+Er(l,"$$a.concat([$$v])")+")}else{$$i>-1&&("+Er(l,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+Er(l,"$$c")+"}",null,!0);else if("input"===$&&"radio"===w)r=e,i=_,a=(o=b)&&o.number,s=Or(r,"value")||"null",Cr(r,"checked","_q("+i+","+(s=a?"_n("+s+")":s)+")"),Ar(r,"change",Er(i,s),null,!0);else if("input"===$||"textarea"===$)!function(e,t,n){var r=e.attrsMap.type,i=n||{},o=i.lazy,a=i.number,s=i.trim,c=!o&&"range"!==r,l=o?"change":"range"===r?Pr:"input",u="$event.target.value";s&&(u="$event.target.value.trim()"),a&&(u="_n("+u+")");var f=Er(t,u);c&&(f="if($event.target.composing)return;"+f),Cr(e,"value","("+t+")"),Ar(e,l,f,null,!0),(s||a)&&Ar(e,"blur","$forceUpdate()")}(e,_,b);else if(!j.isReservedTag($))return Tr(e,_,b),!1;return!0},text:function(e,t){t.value&&Cr(e,"textContent","_s("+t.value+")")},html:function(e,t){t.value&&Cr(e,"innerHTML","_s("+t.value+")")}},isPreTag:function(e){return"pre"===e},isUnaryTag:to,mustUseProp:Sn,canBeLeftOpenTag:no,isReservedTag:Un,getTagNamespace:Vn,staticKeys:(Go=Wo,Go.reduce(function(e,t){return e.concat(t.staticKeys||[])},[]).join(","))},Qo=e(function(e){return s("type,tag,attrsList,attrsMap,plain,parent,children,attrs"+(e?","+e:""))});function ea(e,t){e&&(Zo=Qo(t.staticKeys||""),Xo=t.isReservedTag||O,function e(t){t.static=function(e){if(2===e.type)return!1;if(3===e.type)return!0;return!(!e.pre&&(e.hasBindings||e.if||e.for||c(e.tag)||!Xo(e.tag)||function(e){for(;e.parent;){if("template"!==(e=e.parent).tag)return!1;if(e.for)return!0}return!1}(e)||!Object.keys(e).every(Zo)))}(t);if(1===t.type){if(!Xo(t.tag)&&"slot"!==t.tag&&null==t.attrsMap["inline-template"])return;for(var n=0,r=t.children.length;n|^function\s*\(/,na=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,ra={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},ia={esc:"Escape",tab:"Tab",enter:"Enter",space:" ",up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete"]},oa=function(e){return"if("+e+")return null;"},aa={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:oa("$event.target !== $event.currentTarget"),ctrl:oa("!$event.ctrlKey"),shift:oa("!$event.shiftKey"),alt:oa("!$event.altKey"),meta:oa("!$event.metaKey"),left:oa("'button' in $event && $event.button !== 0"),middle:oa("'button' in $event && $event.button !== 1"),right:oa("'button' in $event && $event.button !== 2")};function sa(e,t,n){var r=t?"nativeOn:{":"on:{";for(var i in e)r+='"'+i+'":'+ca(i,e[i])+",";return r.slice(0,-1)+"}"}function ca(t,e){if(!e)return"function(){}";if(Array.isArray(e))return"["+e.map(function(e){return ca(t,e)}).join(",")+"]";var n=na.test(e.value),r=ta.test(e.value);if(e.modifiers){var i="",o="",a=[];for(var s in e.modifiers)if(aa[s])o+=aa[s],ra[s]&&a.push(s);else if("exact"===s){var c=e.modifiers;o+=oa(["ctrl","shift","alt","meta"].filter(function(e){return!c[e]}).map(function(e){return"$event."+e+"Key"}).join("||"))}else a.push(s);return a.length&&(i+="if(!('button' in $event)&&"+a.map(la).join("&&")+")return null;"),o&&(i+=o),"function($event){"+i+(n?"return "+e.value+"($event)":r?"return ("+e.value+")($event)":e.value)+"}"}return n||r?e.value:"function($event){"+e.value+"}"}function la(e){var t=parseInt(e,10);if(t)return"$event.keyCode!=="+t;var n=ra[e],r=ia[e];return"_k($event.keyCode,"+JSON.stringify(e)+","+JSON.stringify(n)+",$event.key,"+JSON.stringify(r)+")"}var ua={on:function(e,t){e.wrapListeners=function(e){return"_g("+e+","+t.value+")"}},bind:function(t,n){t.wrapData=function(e){return"_b("+e+",'"+t.tag+"',"+n.value+","+(n.modifiers&&n.modifiers.prop?"true":"false")+(n.modifiers&&n.modifiers.sync?",true":"")+")"}},cloak:$},fa=function(e){this.options=e,this.warn=e.warn||$r,this.transforms=wr(e.modules,"transformCode"),this.dataGenFns=wr(e.modules,"genData"),this.directives=m(m({},ua),e.directives);var t=e.isReservedTag||O;this.maybeComponent=function(e){return!t(e.tag)},this.onceId=0,this.staticRenderFns=[]};function pa(e,t){var n=new fa(t);return{render:"with(this){return "+(e?da(e,n):'_c("div")')+"}",staticRenderFns:n.staticRenderFns}}function da(e,t){if(e.staticRoot&&!e.staticProcessed)return va(e,t);if(e.once&&!e.onceProcessed)return ha(e,t);if(e.for&&!e.forProcessed)return f=t,v=(u=e).for,h=u.alias,m=u.iterator1?","+u.iterator1:"",y=u.iterator2?","+u.iterator2:"",u.forProcessed=!0,(d||"_l")+"(("+v+"),function("+h+m+y+"){return "+(p||da)(u,f)+"})";if(e.if&&!e.ifProcessed)return ma(e,t);if("template"!==e.tag||e.slotTarget){if("slot"===e.tag)return function(e,t){var n=e.slotName||'"default"',r=_a(e,t),i="_t("+n+(r?","+r:""),o=e.attrs&&"{"+e.attrs.map(function(e){return g(e.name)+":"+e.value}).join(",")+"}",a=e.attrsMap["v-bind"];!o&&!a||r||(i+=",null");o&&(i+=","+o);a&&(i+=(o?"":",null")+","+a);return i+")"}(e,t);var n;if(e.component)a=e.component,c=t,l=(s=e).inlineTemplate?null:_a(s,c,!0),n="_c("+a+","+ya(s,c)+(l?","+l:"")+")";else{var r=e.plain?void 0:ya(e,t),i=e.inlineTemplate?null:_a(e,t,!0);n="_c('"+e.tag+"'"+(r?","+r:"")+(i?","+i:"")+")"}for(var o=0;o':'
    ',0 +# 1.0.0 (2018-07-25) diff --git a/themes/fractal-forest/COPYING b/themes/fractal-forest/COPYING new file mode 100644 index 0000000..5c93f45 --- /dev/null +++ b/themes/fractal-forest/COPYING @@ -0,0 +1,13 @@ + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + + Copyright (C) 2004 Sam Hocevar + + Everyone is permitted to copy and distribute verbatim or modified + copies of this license document, and changing it is allowed as long + as the name is changed. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. You just DO WHAT THE FUCK YOU WANT TO. diff --git a/themes/fractal-forest/Dockerfile b/themes/fractal-forest/Dockerfile new file mode 100644 index 0000000..941e699 --- /dev/null +++ b/themes/fractal-forest/Dockerfile @@ -0,0 +1,44 @@ +# DOCKER-VERSION 17.12.0-ce, build c97c6d6 + +# Pull alpine base image +FROM alpine:latest AS codecbuilder + +# Configure build settings +ENV LIBBPG_VERSION=0.9.8 \ + CPU_CORES=1 + +# Fetch and extract bpg library +RUN cd /tmp && \ + wget https://bellard.org/bpg/libbpg-${LIBBPG_VERSION}.tar.gz && \ + mkdir -p /opt/libbpg && \ + tar --strip-components=1 -xzf libbpg-${LIBBPG_VERSION}.tar.gz -C /opt/libbpg && \ + rm -f libbpg-${LIBBPG_VERSION}.tar.gz + +# Set current working directory +WORKDIR /opt/libbpg + +# Set bpg build options +ENV USE_EMCC=y \ + USE_JCTVC=y \ + USE_X265= + +# Install packages required to build codecs +RUN apk add --update --no-cache \ + build-base cmake libpng-dev libjpeg-turbo-dev \ + sdl-dev sdl_image-dev yasm && \ + echo http://dl-cdn.alpinelinux.org/alpine/edge/testing >> /etc/apk/repositories && \ + apk add --no-cache emscripten + +# Compile codecs in intermediate container +RUN make -j ${CPU_CORES} && make install + +# Generate js file integrity hashes +RUN apk add --update --no-cache openssl +COPY ./bin/generate-hashes.sh . +RUN chmod +x generate-hashes.sh && ./generate-hashes.sh + +# Move codecs and hashes into busybox container +FROM busybox AS codecs +COPY --from=codecbuilder /usr/local/bin/bpg* /usr/local/bin/ +COPY --from=codecbuilder /opt/libbpg/bpg*.js* /var/www/ +WORKDIR /usr/local/bin diff --git a/themes/fractal-forest/README.md b/themes/fractal-forest/README.md new file mode 100644 index 0000000..3f745ff --- /dev/null +++ b/themes/fractal-forest/README.md @@ -0,0 +1,92 @@ +# Fractal Forest + +[![Latest NPM version](https://img.shields.io/npm/v/fractal-forest.svg?style=flat-square)](https://www.npmjs.com/package/fractal-forest) +[![NPM downloads per month](https://img.shields.io/npm/dm/fractal-forest.svg?style=flat-square)](https://www.npmjs.com/package/fractal-forest) + +Better Portable Graphics module for [After Dark]. Fractal Forest adds support for Fabrice Bellard's [well-regarded](https://news.ycombinator.com/item?id=17587684) and open source [BPG Image format](https://bellard.org/bpg/). + +## Requirements + +- [After Dark] `5.1.0` or later. + +## Setup + +None required. + +## Installation + +1. Copy the contents of this repository into a directory called `themes/fractal-forest` under the root of your After Dark site. +2. Add `fractal-forest` as a [theme component](https://gohugo.io/themes/theme-components/) to your After Dark site `config.toml`, e.g. + + ```toml + theme = [ + "fractal-forest", + "after-dark" + ] + ``` + +3. Add and specify settings for the module in your After Dark site config, e.g. + + ```toml + [params.modules.fractal_forest] + enabled = true # Optional, set false to disable module + decoders = [ + "bpgdec8", # 8-bit only javascript decoder without animation + "bpgdec", # > 8-bit javascript decoder without animation + "bpgdec8a" # 8-bit javascript decoder with animation + ] + crossorigin = "anonymous" # Optional, sets CORS attribute + ``` + +4. Build and deploy your After Dark site. + +For additional information please see [BPG Image format](https://bellard.org/bpg/). To request a feature or report a bug please do so in the [After Dark] repository. + +## Development + +For development, install Docker on your machine: + +- [Get started with Docker for Mac](https://docs.docker.com/docker-for-mac/) +- [Get started with Docker for Windows](https://docs.docker.com/docker-for-windows/) + +Then build the codecs with [`docker build`](https://docs.docker.com/engine/reference/commandline/build/). + +To adjust the version of bpg used simply modify `LIBBPG_VERSION` in the `Dockerfile` for desired version and rebuild. If you're on a multicore system adjust `CPU_CORES` to decrease compilation time. + +Docker build produces an intermediate container image with libbpg source and result of compilation. It also copyies the codecs into a busybox image. + +To access the full `libbpg` source run: + +```sh +$ docker run -it 30c982469f98 +``` + +Where `30c982469f98` is the image id of the intermediate step. + +To access just the codecs run: + +```sh +$ docker run -it 712e9ce47e86 +``` + +Where `712e9ce47e86` is the image id of the final build step. + +To update the javascript decoders in `static/js/bpg` run: + +``` +$ docker run --rm --entrypoint tar 712e9ce47e86 cC /var/www/ . | tar xvC static/js +``` + +Where `712e9ce47e86` is the image id of the final build step. + +Reference the [`libbpg` mirror](https://git.habd.as/jhabdas/libbpg/) for additional compilation settings, `README` and `Makefile`. See the [Docker Documentation](https://docs.docker.com) for help with Docker. + +## License + +Copyright (C) 2018 Josh Habdas + +This work is free. You can redistribute it and/or modify it under the +terms of the Do What The Fuck You Want To Public License, Version 2, +as published by Sam Hocevar. See the COPYING file for more details. + +[After Dark]: https://git.habd.as/comfusion/after-dark/ diff --git a/themes/fractal-forest/bin/generate-hashes.sh b/themes/fractal-forest/bin/generate-hashes.sh new file mode 100644 index 0000000..7a1136a --- /dev/null +++ b/themes/fractal-forest/bin/generate-hashes.sh @@ -0,0 +1,8 @@ +#!/bin/sh +set -e + +# Generate hashes for javascripts +for file in ./bpg*.js; do + [ -e "$file" ] || continue + echo $(openssl dgst -sha384 -binary $file | openssl base64 -A) > $file.sha384 +done diff --git a/themes/fractal-forest/layouts/partials/modules/fractal-forest/index.html b/themes/fractal-forest/layouts/partials/modules/fractal-forest/index.html new file mode 100644 index 0000000..12f1cc9 --- /dev/null +++ b/themes/fractal-forest/layouts/partials/modules/fractal-forest/index.html @@ -0,0 +1,9 @@ +{{ $crossorigin := .crossorigin }} +{{ if ne .enabled false }} + + {{ range .decoders }} + + {{ end }} +{{ else }} + +{{ end }} diff --git a/themes/fractal-forest/package.json b/themes/fractal-forest/package.json new file mode 100644 index 0000000..1895a21 --- /dev/null +++ b/themes/fractal-forest/package.json @@ -0,0 +1,22 @@ +{ + "name": "fractal-forest", + "version": "1.0.0", + "description": "Better Portable Graphics module for After Dark.", + "scripts": { + "test": "while true; do head -n 100 /dev/urandom; sleep 0.1; done | hexdump -C | grep 'ca fe'", + "release": "standard-version" + }, + "repository": { + "type": "git", + "url": "https://git.habd.as/comfusion/fractal-forest.git" + }, + "keywords": [ + "docker", + "hugo", + "wasm", + "bpg", + "asmjs" + ], + "author": "Josh Habdas", + "license": "WTFPL" +} diff --git a/themes/fractal-forest/static/bpg/cinemagraph-6.bpg b/themes/fractal-forest/static/bpg/cinemagraph-6.bpg new file mode 100644 index 0000000..a222dd3 Binary files /dev/null and b/themes/fractal-forest/static/bpg/cinemagraph-6.bpg differ diff --git a/themes/fractal-forest/static/js/bpgdec.js b/themes/fractal-forest/static/js/bpgdec.js new file mode 100644 index 0000000..2e1457b --- /dev/null +++ b/themes/fractal-forest/static/js/bpgdec.js @@ -0,0 +1,17 @@ +((function(){var Module={};var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else{throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER}if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=console.log;if(!Module["printErr"])Module["printErr"]=console.warn;var nodeFS;var nodePath;Module["read"]=function read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=(function(status,toThrow){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return xhr.response}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function printErr(x){console.warn(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}if(!Module["quit"]){Module["quit"]=(function(status,toThrow){throw toThrow})}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var Runtime={setTempRet0:(function(value){tempRet0=value;return value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i>2];var end=(ret+size+15|0)&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=Runtime.stackAlloc(len);stringToUTF8(str,ret,len)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[typeof _malloc==="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function demangle(func){var __cxa_demangle_func=Module["___cxa_demangle"]||Module["__cxa_demangle"];if(__cxa_demangle_func){try{var s=func.substr(1);var len=lengthBytesUTF8(s)+1;var buf=_malloc(len);stringToUTF8(s,buf,len);var status=_malloc(4);var ret=__cxa_demangle_func(buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}return func}Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}Module["stackTrace"]=stackTrace;var HEAP;var buffer;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||33554432;if(TOTAL_MEMORY0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var lastChar,end;if(dontAddNull){end=buffer+lengthBytesUTF8(string);lastChar=HEAP8[end]}stringToUTF8(string,buffer,Infinity);if(dontAddNull)HEAP8[end]=lastChar}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];if(!Math["trunc"])Math["trunc"]=(function(x){return x<0?Math.ceil(x):Math.floor(x)});Math.trunc=Math["trunc"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_round=Math.round;var Math_min=Math.min;var Math_clz32=Math.clz32;var Math_trunc=Math.trunc;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+6096;__ATINIT__.push();allocate([29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,33,0,0,0,34,0,0,0,34,0,0,0,35,0,0,0,35,0,0,0,36,0,0,0,36,0,0,0,37,0,0,0,37,0,0,0,93,6,0,0,0,0,0,0,0,0,0,0,53,54,50,72,34,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,1,0,0,0,0,0,0,0,255,255,255,127,54,0,0,0,0,0,0,0,3,1,1,0,36,120,37,120,38,120,0,0,0,0,0,0,56,0,0,0,0,0,0,0,3,1,0,16,36,120,37,120,38,120,0,0,0,0,0,0,58,0,0,0,0,0,0,0,3,0,0,16,36,120,37,120,38,120,0,0,0,0,0,0,32,0,0,0,0,0,0,0,1,0,0,0,36,120,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,1,0,0,0,0,240,154,249,114,252,138,253,30,254,122,254,197,254,0,255,197,254,122,254,30,254,138,253,114,252,154,249,0,240,0,0,1,0,1,2,0,1,2,3,1,2,3,2,3,3,0,1,0,2,1,0,3,2,1,0,3,2,1,3,2,3,0,0,1,0,1,2,0,1,2,3,0,1,2,3,4,0,1,2,3,4,5,0,1,2,3,4,5,6,0,1,2,3,4,5,6,7,1,2,3,4,5,6,7,2,3,4,5,6,7,3,4,5,6,7,4,5,6,7,5,6,7,6,7,7,0,1,0,2,1,0,3,2,1,0,4,3,2,1,0,5,4,3,2,1,0,6,5,4,3,2,1,0,7,6,5,4,3,2,1,0,7,6,5,4,3,2,1,7,6,5,4,3,2,7,6,5,4,3,7,6,5,4,7,6,5,7,6,7,40,45,51,57,64,72,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,8,8,8,8,8,8,9,9,9,9,9,9,10,10,10,10,10,10,11,11,11,11,11,11,12,12,0,0,0,2,5,9,1,4,8,12,3,7,11,14,6,10,13,15,0,2,1,3,0,2,5,9,14,20,27,35,1,4,8,13,19,26,34,42,3,7,12,18,25,33,41,48,6,11,17,24,32,40,47,53,10,16,23,31,39,46,52,57,15,22,30,38,45,51,56,60,21,29,37,44,50,55,59,62,28,36,43,49,54,58,61,63,0,1,0,1,0,0,1,1,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,0,1,2,3,16,17,18,19,4,5,6,7,20,21,22,23,8,9,10,11,24,25,26,27,12,13,14,15,28,29,30,31,32,33,34,35,48,49,50,51,36,37,38,39,52,53,54,55,40,41,42,43,56,57,58,59,44,45,46,47,60,61,62,63,0,1,4,5,2,3,4,5,6,6,8,8,7,7,8,8,1,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,2,1,0,0,2,1,0,0,2,1,0,0,2,1,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,153,200,139,141,157,154,154,154,154,154,154,154,154,184,154,154,154,184,63,139,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,153,138,138,111,141,94,138,182,154,139,139,139,139,139,139,110,110,124,125,140,153,125,127,140,109,111,143,127,111,79,108,123,63,110,110,124,125,140,153,125,127,140,109,111,143,127,111,79,108,123,63,91,171,134,141,111,111,125,110,110,94,124,108,124,107,125,141,179,153,125,107,125,141,179,153,125,107,125,141,179,153,125,140,139,182,182,152,136,152,136,153,136,139,111,136,139,111,141,111,140,92,137,138,140,152,138,139,153,74,149,92,139,107,122,152,140,179,166,182,140,227,122,197,138,153,136,167,152,152,154,154,154,154,154,154,154,154,154,154,154,154,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,153,185,107,139,126,154,197,185,201,154,154,154,149,154,139,154,154,154,152,139,110,122,95,79,63,31,31,153,153,153,153,140,198,140,198,168,79,124,138,94,153,111,149,107,167,154,139,139,139,139,139,139,125,110,94,110,95,79,125,111,110,78,110,111,111,95,94,108,123,108,125,110,94,110,95,79,125,111,110,78,110,111,111,95,94,108,123,108,121,140,61,154,155,154,139,153,139,123,123,63,153,166,183,140,136,153,154,166,183,140,136,153,154,166,183,140,136,153,154,170,153,123,123,107,121,107,121,167,151,183,140,151,183,140,140,140,154,196,196,167,154,152,167,182,182,134,149,136,153,121,136,137,169,194,166,167,154,167,137,182,107,167,91,122,107,167,154,154,154,154,154,154,154,154,154,154,154,154,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,153,160,107,139,126,154,197,185,201,154,154,154,134,154,139,154,154,183,152,139,154,137,95,79,63,31,31,153,153,153,153,169,198,169,198,168,79,224,167,122,153,111,149,92,167,154,139,139,139,139,139,139,125,110,124,110,95,94,125,111,111,79,125,126,111,111,79,108,123,93,125,110,124,110,95,94,125,111,111,79,125,126,111,111,79,108,123,93,121,140,61,154,170,154,139,153,139,123,123,63,124,166,183,140,136,153,154,166,183,140,136,153,154,166,183,140,136,153,154,170,153,138,138,122,121,122,121,167,151,183,140,151,183,140,140,140,154,196,167,167,154,152,167,182,182,134,149,136,153,121,136,122,169,208,166,167,154,152,167,182,107,167,91,107,107,167,154,154,154,154,154,154,154,154,154,154,154,154,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,8,9,10,11,12,13,14,15,16,17,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,5,5,6,6,7,8,9,10,11,13,14,16,18,20,22,24,29,30,31,32,33,33,34,34,35,35,36,36,37,37,104,101,118,99,0,0,26,10,1,0,1,2,2,2,2,3,5,7,8,10,12,13,15,17,18,19,20,21,22,23,23,24,24,25,25,26,27,27,28,28,29,29,30,31,32,26,21,17,13,9,5,2,0,254,251,247,243,239,235,230,224,230,235,239,243,247,251,254,0,2,5,9,13,17,21,26,32,64,90,90,90,89,88,87,85,83,82,80,78,75,73,70,67,64,61,57,54,50,46,43,38,36,31,25,22,18,13,9,4,255,0,1,0,0,255,0,1,255,255,1,1,1,255,255,1,1,2,0,3,4,16,16,16,16,17,18,21,24,16,16,16,16,17,19,22,25,16,16,17,18,20,22,25,29,16,16,18,21,24,27,31,36,17,17,20,24,30,35,41,47,18,19,22,27,35,44,54,65,21,22,25,31,41,54,70,88,24,25,29,36,47,65,88,115,16,16,16,16,17,18,20,24,16,16,16,17,18,20,24,25,16,16,17,18,20,24,25,28,16,17,18,20,24,25,28,33,17,18,20,24,25,28,33,41,18,20,24,25,28,33,41,54,20,24,25,28,33,41,54,71,24,25,28,33,41,54,71,91,128,176,208,240,128,167,197,227,128,158,187,216,123,150,178,205,116,142,169,195,111,135,160,185,105,128,152,175,100,122,144,166,95,116,137,158,90,110,130,150,85,104,123,142,81,99,117,135,77,94,111,128,73,89,105,122,69,85,100,116,66,80,95,110,62,76,90,104,59,72,86,99,56,69,81,94,53,65,77,89,51,62,73,85,48,59,69,80,46,56,66,76,43,53,63,72,41,50,59,69,39,48,56,65,37,45,54,62,35,43,51,59,33,41,48,56,32,39,46,53,30,37,43,50,29,35,41,48,27,33,39,45,26,31,37,43,24,30,35,41,23,28,33,39,22,27,32,37,21,26,30,35,20,24,29,33,19,23,27,31,18,22,26,30,17,21,25,28,16,20,23,27,15,19,22,25,14,18,21,24,14,17,20,23,13,16,19,22,12,15,18,21,12,14,17,20,11,14,16,19,11,13,15,18,10,12,15,17,10,12,14,16,9,11,13,15,9,11,12,14,8,10,12,14,8,9,11,13,7,9,11,12,7,9,10,12,7,8,10,11,6,8,9,11,6,7,9,10,6,7,8,9,2,2,2,2,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,62,63,0,0,1,2,2,4,4,5,6,7,8,9,9,11,11,12,13,13,15,15,16,16,18,18,19,19,21,21,22,22,23,24,24,25,26,26,27,27,28,29,29,30,30,30,31,32,32,33,33,33,34,34,35,35,35,36,36,36,37,37,37,38,38,63,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,0,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;STATICTOP+=16;Module["_bitshift64Ashr"]=_bitshift64Ashr;Module["_i64Subtract"]=_i64Subtract;function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}Module["_sbrk"]=_sbrk;Module["_i64Add"]=_i64Add;Module["_memset"]=_memset;Module["_bitshift64Shl"]=_bitshift64Shl;function _abort(){Module["abort"]()}Module["_llvm_bswap_i32"]=_llvm_bswap_i32;Module["___muldsi3"]=___muldsi3;Module["___muldi3"]=___muldi3;function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;DYNAMICTOP_PTR=allocate(1,"i32",ALLOC_STATIC);STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;function invoke_iiii(index,a1,a2,a3){try{return Module["dynCall_iiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){try{Module["dynCall_viiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){try{Module["dynCall_viiiiiii"](index,a1,a2,a3,a4,a5,a6,a7)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13){try{Module["dynCall_viiiiiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vi(index,a1){try{Module["dynCall_vi"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vii(index,a1,a2){try{Module["dynCall_vii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){try{return Module["dynCall_iiiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_ii(index,a1){try{return Module["dynCall_ii"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viii(index,a1,a2,a3){try{Module["dynCall_viii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){try{return Module["dynCall_iiiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iii(index,a1,a2){try{return Module["dynCall_iii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){try{return Module["dynCall_iiiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){try{Module["dynCall_viiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity};Module.asmLibraryArg={"abort":abort,"assert":assert,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"invoke_iiii":invoke_iiii,"invoke_viiiiiiiiii":invoke_viiiiiiiiii,"invoke_viiiiiii":invoke_viiiiiii,"invoke_viiiiiiiiiiiii":invoke_viiiiiiiiiiiii,"invoke_vi":invoke_vi,"invoke_vii":invoke_vii,"invoke_iiiiiii":invoke_iiiiiii,"invoke_ii":invoke_ii,"invoke_viii":invoke_viii,"invoke_iiiii":invoke_iiiii,"invoke_viiiiii":invoke_viiiiii,"invoke_iii":invoke_iii,"invoke_iiiiii":invoke_iiiiii,"invoke_viiii":invoke_viiii,"___setErrNo":___setErrNo,"_emscripten_memcpy_big":_emscripten_memcpy_big,"_abort":_abort,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX};// EMSCRIPTEN_START_ASM +var asm=(function(global,env,buffer) { +"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.DYNAMICTOP_PTR|0;var j=env.tempDoublePtr|0;var k=env.ABORT|0;var l=env.STACKTOP|0;var m=env.STACK_MAX|0;var n=0;var o=0;var p=0;var q=0;var r=global.NaN,s=global.Infinity;var t=0,u=0,v=0,w=0,x=0.0,y=0,z=0,A=0,B=0.0;var C=0;var D=global.Math.floor;var E=global.Math.abs;var F=global.Math.sqrt;var G=global.Math.pow;var H=global.Math.cos;var I=global.Math.sin;var J=global.Math.tan;var K=global.Math.acos;var L=global.Math.asin;var M=global.Math.atan;var N=global.Math.atan2;var O=global.Math.exp;var P=global.Math.log;var Q=global.Math.ceil;var R=global.Math.imul;var S=global.Math.min;var T=global.Math.max;var U=global.Math.clz32;var V=env.abort;var W=env.assert;var X=env.enlargeMemory;var Y=env.getTotalMemory;var Z=env.abortOnCannotGrowMemory;var _=env.invoke_iiii;var $=env.invoke_viiiiiiiiii;var aa=env.invoke_viiiiiii;var ba=env.invoke_viiiiiiiiiiiii;var ca=env.invoke_vi;var da=env.invoke_vii;var ea=env.invoke_iiiiiii;var fa=env.invoke_ii;var ga=env.invoke_viii;var ha=env.invoke_iiiii;var ia=env.invoke_viiiiii;var ja=env.invoke_iii;var ka=env.invoke_iiiiii;var la=env.invoke_viiii;var ma=env.___setErrNo;var na=env._emscripten_memcpy_big;var oa=env._abort;var pa=0.0; +// EMSCRIPTEN_START_FUNCS +function Ea(a){a=a|0;var b=0;b=l;l=l+a|0;l=l+15&-16;return b|0}function Fa(){return l|0}function Ga(a){a=a|0;l=a}function Ha(a,b){a=a|0;b=b|0;l=a;m=b}function Ia(a,b){a=a|0;b=b|0;if(!n){n=a;o=b}}function Ja(a){a=a|0;C=a}function Ka(){return C|0}function La(b,d){b=b|0;d=d|0;var e=0;do if(a[(c[b+204>>2]|0)+43>>0]|0){e=c[(c[b+200>>2]|0)+13128>>2]|0;d=(d|0)%(e|0)|0;if((d|0)!=2?!((e|0)==2&(d|0)==0):0)break;Pf(c[b+152>>2]|0,c[b+136>>2]|0,199)|0}while(0);return}function Ma(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=b+204|0;e=c[g>>2]|0;do if((c[(c[e+1668>>2]|0)+(c[b+2500>>2]<<2)>>2]|0)==(d|0)){Na(b);e=b+1449|0;if(a[e>>0]|0){f=c[g>>2]|0;if(a[f+42>>0]|0?(f=c[f+1676>>2]|0,(c[f+(d<<2)>>2]|0)!=(c[f+(d+-1<<2)>>2]|0)):0)i=5}else i=5;if((i|0)==5)Oa(b);if(((a[b+1448>>0]|0)==0?a[(c[g>>2]|0)+43>>0]|0:0)?(h=c[(c[b+200>>2]|0)+13128>>2]|0,((d|0)%(h|0)|0|0)==0):0){if((h|0)==1){Oa(b);break}if((a[e>>0]|0)==1)Pa(b)}}else{if((a[e+42>>0]|0)!=0?(i=c[e+1676>>2]|0,(c[i+(d<<2)>>2]|0)!=(c[i+(d+-1<<2)>>2]|0)):0){if((a[b+141>>0]|0)==1)Qa(c[b+136>>2]|0);else Na(b);Oa(b);e=c[g>>2]|0}if(a[e+43>>0]|0?(f=b+200|0,((d|0)%(c[(c[f>>2]|0)+13128>>2]|0)|0|0)==0):0){e=b+136|0;Ra((c[e>>2]|0)+224|0)|0;if((a[b+141>>0]|0)==1)Qa(c[e>>2]|0);else Na(b);if((c[(c[f>>2]|0)+13128>>2]|0)==1){Oa(b);break}else{Pa(b);break}}}while(0);return}function Na(a){a=a|0;var b=0,d=0;d=a+136|0;a=(c[d>>2]|0)+204|0;Rd(a,1);sb(a);d=(c[d>>2]|0)+224|0;b=c[a>>2]|0;b=b+((tb(a)|0)/8|0)|0;Md(d,b,((ub(a)|0)+7|0)/8|0);return}function Oa(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;g=c[b+1440>>2]|0;e=2-g|0;e=(g|0)==2|(a[b+2060>>0]|0)==0?e:e^3;g=b+2112|0;f=b+136|0;b=0;do{h=d[912+(e*199|0)+b>>0]|0;j=a[g>>0]|0;i=j<<24>>24;h=((h<<3&120)+-16+((R(j<<24>>24<0?0:(i|0)<51?i:51,((h>>>4)*5|0)+-45|0)|0)>>4)<<1)+-127|0;h=h>>31^h;a[(c[f>>2]|0)+b>>0]=(h|0)>124?h&1|124:h;b=b+1|0}while((b|0)!=199);b=0;do{a[(c[f>>2]|0)+199+b>>0]=0;b=b+1|0}while((b|0)!=4);return}function Pa(a){a=a|0;Pf(c[a+136>>2]|0,c[a+152>>2]|0,199)|0;return}function Qa(a){a=a|0;vb(a+224|0);return}function Ra(a){a=a|0;var b=0,d=0;d=a+4|0;b=(c[d>>2]|0)+-2|0;c[d>>2]=b;if((c[a>>2]|0)<(b<<17|0)){wb(a);a=0}else a=(c[a+16>>2]|0)-(c[a+12>>2]|0)|0;return a|0}function Sa(a){a=a|0;a=c[a+136>>2]|0;return Ta(a+224|0,a)|0}function Ta(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=d[e>>0]|0;g=b+4|0;i=c[g>>2]|0;j=d[5253+((i<<1&384)+f)>>0]|0;i=i-j|0;k=i<<17;l=c[b>>2]|0;h=k-l>>31;c[b>>2]=l-(h&k);c[g>>2]=(h&j-i)+i;f=h^f;a[e>>0]=a[5893+f>>0]|0;h=c[g>>2]|0;e=d[4741+h>>0]|0;c[g>>2]=h<>2]<>2]=e;if(!(e&65535))yb(b);return f&1|0}function Ua(a){a=a|0;var b=0;a=a+136|0;b=c[a>>2]|0;if(!(Ta(b+224|0,b+1|0)|0))a=0;else{a=(Va((c[a>>2]|0)+224|0)|0)==0;a=a?1:2}return a|0}function Va(a){a=a|0;var b=0,d=0;b=c[a>>2]<<1;c[a>>2]=b;if(!(b&65534)){xb(a);b=c[a>>2]|0}d=c[a+4>>2]<<17;if((b|0)<(d|0))b=0;else{c[a>>2]=b-d;b=1}return b|0}function Wa(a){a=a|0;var b=0,d=0;d=a+136|0;a=0;b=Va((c[d>>2]|0)+224|0)|0;do{b=Va((c[d>>2]|0)+224|0)|0|b<<1;a=a+1|0}while((a|0)!=4);return b|0}function Xa(a){a=a|0;var b=0,d=0;d=c[(c[a+200>>2]|0)+52>>2]|0;d=(d|0)>10?31:(1<0){a=0;do{if(!(Va((c[b>>2]|0)+224|0)|0))break a;a=a+1|0}while((a|0)<(d|0))}else a=0;while(0);return a|0}function Ya(a){a=a|0;return Va((c[a+136>>2]|0)+224|0)|0}function Za(a){a=a|0;var b=0;b=a+136|0;a=(Va((c[b>>2]|0)+224|0)|0)<<1;return Va((c[b>>2]|0)+224|0)|0|a|0}function _a(a){a=a|0;return Ra((c[a+136>>2]|0)+224|0)|0}function $a(a){a=a|0;a=c[a+136>>2]|0;return Ta(a+224|0,a+5|0)|0}function ab(a){a=a|0;var b=0,d=0,e=0,f=0;e=a+136|0;a=9;b=0;while(1){d=c[e>>2]|0;if(!(Ta(d+224|0,d+a|0)|0)){a=0;break}b=b+1|0;if((b|0)>=5){a=0;d=0;f=4;break}else a=10}do if((f|0)==4){while(1){f=0;if(!(Va((c[e>>2]|0)+224|0)|0)){f=5;break}a=(1<>2]|0)+224|0)|0)<>2]|0)+224|0)|0}function cb(a){a=a|0;a=c[a+136>>2]|0;return Ta(a+224|0,a+176|0)|0}function db(b){b=b|0;var d=0,e=0,f=0;f=a[(c[b+204>>2]|0)+1633>>0]|0;f=(f&255)>5?f:5;e=f&255;d=b+136|0;a:do if(!(f<<24>>24))b=0;else{b=0;do{f=c[d>>2]|0;if(!(Ta(f+224|0,f+177|0)|0))break a;b=b+1|0}while((b|0)<(e|0))}while(0);return b|0}function eb(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;k=c[b+200>>2]|0;l=(1<>2])+-1|0;j=c[k+13064>>2]|0;i=f>>j;j=g>>j;m=c[b+136>>2]|0;if((a[m+308>>0]|0)!=0|(l&f|0)!=0)h=d[(c[b+4336>>2]|0)+(i+-1+(R(c[k+13140>>2]|0,j)|0))>>0]|0;else h=0;if((l&g|0)!=0|(a[m+309>>0]|0)!=0)f=d[(c[b+4336>>2]|0)+((R(c[k+13140>>2]|0,j+-1|0)|0)+i)>>0]|0;else f=0;return Ta(m+224|0,m+(((h|0)>(e|0)?3:2)+((f|0)>(e|0)&1))|0)|0}function fb(a,b){a=a|0;b=b|0;b=c[a+136>>2]|0;b=(Ta(b+224|0,b+13|0)|0)==0;return (b?3:0)|0}function gb(a){a=a|0;return Ra((c[a+136>>2]|0)+224|0)|0}function hb(a){a=a|0;a=c[a+136>>2]|0;return Ta(a+224|0,a+17|0)|0}function ib(a){a=a|0;var b=0;b=a+136|0;a=0;do{if(!(Va((c[b>>2]|0)+224|0)|0))break;a=a+1|0}while((a|0)<2);return a|0}function jb(a){a=a|0;var b=0,d=0;d=a+136|0;a=0;b=Va((c[d>>2]|0)+224|0)|0;do{b=Va((c[d>>2]|0)+224|0)|0|b<<1;a=a+1|0}while((a|0)!=4);return b|0}function kb(a){a=a|0;var b=0;a=a+136|0;b=c[a>>2]|0;if(!(Ta(b+224|0,b+18|0)|0))a=4;else{b=(Va((c[a>>2]|0)+224|0)|0)<<1;a=Va((c[a>>2]|0)+224|0)|0|b}return a|0}function lb(a,b){a=a|0;b=b|0;a=c[a+136>>2]|0;return Ta(a+224|0,a+(42-b)|0)|0}function mb(a,b){a=a|0;b=b|0;a=c[a+136>>2]|0;return Ta(a+224|0,a+(b+42)|0)|0}function nb(a,b){a=a|0;b=b|0;a=c[a+136>>2]|0;return Ta(a+224|0,a+((b|0)==0?41:40)|0)|0}function ob(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+136|0;b=(b<<2)+166|0;a=0;do{e=c[d>>2]|0;if(!(Ta(e+224|0,e+(b+a)|0)|0))break;a=a+1|0}while((a|0)<4);return a|0}function pb(a,b){a=a|0;b=b|0;a=c[a+136>>2]|0;return Ta(a+224|0,a+(b+174)|0)|0}function qb(f,g,h,i,j,k){f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,wa=0,xa=0,za=0,Aa=0,Ba=0,Ca=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0;Pa=l;l=l+96|0;Ea=Pa+24|0;Fa=Pa+8|0;Ga=Pa;Ha=f+136|0;Ka=c[Ha>>2]|0;Ma=c[f+160>>2]|0;Na=c[Ma+32+(k<<2)>>2]|0;Oa=f+200|0;z=c[Oa>>2]|0;La=R(h>>c[z+13180+(k<<2)>>2],Na)|0;La=(c[Ma+(k<<2)>>2]|0)+((g>>c[z+13168+(k<<2)>>2]<>2])+La)|0;z=(k|0)!=0;Ma=Ka+320|0;Ja=z?Ka+11680|0:Ma;g=Ea;h=g+64|0;do{a[g>>0]=0;g=g+1|0}while((g|0)<(h|0));y=1<>2]|0;Ia=y<>0]|0)){m=a[Ka+272>>0]|0;o=f+204|0;xa=c[o>>2]|0;if((a[xa+21>>0]|0)!=0?(d[xa+1629>>0]|0)>=(i|0):0)q=rb(f,k)|0;else q=0;do if(!Aa){g=c[o>>2]|0;if((k|0)==1){g=(c[f+2072>>2]|0)+(c[g+28>>2]|0)|0;h=Ka+302|0}else{g=(c[f+2076>>2]|0)+(c[g+32>>2]|0)|0;h=Ka+303|0}g=g+m+(a[h>>0]|0)|0;m=c[Oa>>2]|0;h=c[m+13192>>2]|0;xa=0-h|0;g=(g|0)<(xa|0)?xa:(g|0)<57?g:57;if((c[m+4>>2]|0)!=1){g=(g|0)<51?g:51;break}if((g|0)>=30)if((g|0)>43){g=g+-6|0;break}else{g=c[8+(g+-30<<2)>>2]|0;break}}else{xa=c[Oa>>2]|0;g=m;h=c[xa+13192>>2]|0;m=xa}while(0);n=h+g|0;h=(c[m+52>>2]|0)+i|0;g=h+-5|0;h=1<>0]|0)>>0]<>0];if((a[m+634>>0]|0)!=0?!((i|0)>2&(q|0)!=0):0){o=c[o>>2]|0;o=(a[o+68>>0]|0)==0?m+635|0:o+69|0;p=((c[Ka+31244>>2]|0)!=1?3:0)+k|0;m=o+((i+-2|0)*384|0)+(p<<6)|0;if((i|0)>3){wa=q;ua=m;x=a[o+1536+((i+-4|0)*6|0)+p>>0]|0}else{wa=q;ua=m;x=16}}else{wa=q;ua=0;x=16}}else{g=0;h=0;n=0;wa=0;ua=0;x=0}ta=i<<1;s=ta+-1|0;xa=i+-2|0;p=Aa?(xa*3|0)+(i+-1>>2)|0:15;r=Aa?i+1>>2:xa;if((ta|0)>1){o=p+52|0;m=0;while(1){ta=c[Ha>>2]|0;if(!(Ta(ta+224|0,ta+(o+(m>>r))|0)|0)){q=m;break}m=m+1|0;if((m|0)>=(s|0)){q=m;break}}o=p+70|0;m=0;while(1){ta=c[Ha>>2]|0;if(!(Ta(ta+224|0,ta+(o+(m>>r))|0)|0)){r=m;break}m=m+1|0;if((m|0)>=(s|0)){r=m;break}}if((q|0)>3){p=(q>>>1)+-1|0;m=Va((c[Ha>>2]|0)+224|0)|0;if((p|0)>1){o=1;do{m=Va((c[Ha>>2]|0)+224|0)|0|m<<1;o=o+1|0}while((o|0)!=(p|0))}q=m+((q&1|2)<3){p=(r>>>1)+-1|0;m=Va((c[Ha>>2]|0)+224|0)|0;if((p|0)>1){o=1;do{m=Va((c[Ha>>2]|0)+224|0)|0|m<<1;o=o+1|0}while((o|0)!=(p|0))}v=m+((r&1|2)<>2;m=v>>2;Ba=44}else{w=q>>2;u=v>>2;switch(j|0){case 0:break;case 1:{sa=736;ta=752;o=d[768+(v<<3)+q>>0]|0;p=728;r=732;s=v;m=w;break a}default:{s=v;t=q;m=w;Ba=44;break a}}o=d[(q&3)+(644+((v&3)<<2))>>0]|0;switch(i|0){case 2:{sa=326;ta=342;p=3716;r=3716;s=v;m=w;break a}case 3:{p=732;r=728;m=660+(u<<1)+w|0;break}case 4:{p=326;r=342;m=644+(u<<2)+w|0;break}default:{p=358;r=422;m=664+(u<<3)+w|0}}sa=326;ta=342;o=(d[m>>0]<<4)+o|0;s=v;m=w}while(0);if((Ba|0)==44){sa=752;ta=736;o=d[768+(t<<3)+s>>0]|0;p=732;r=728;q=t}ra=o+1|0;pa=o>>4;if((pa|0)>-1){qa=(1<0;oa=na?90:88;ma=y+-1>>2;ia=z?27:0;ja=(i|0)==2;ka=(i|0)==3;la=ia+3|0;_=(j|0)==0?9:15;Z=Aa?0:27;$=(wa|0)==0;Y=Aa?42:43;X=Aa?40:41;aa=Ka+31244|0;ba=(wa|0)!=0;ca=(Ca|16|0)==26;da=f+204|0;ea=((n|0)<0)<<31>>31;fa=((h|0)<0)<<31>>31;ha=(i|0)>2&ba;ga=(i|0)<4;U=x&255;V=(Aa&1)<<1;W=V|1;T=ia+(ka?9:12)|0;v=1;S=pa;t=0;o=16;while(1){y=S<<4;j=a[p+S>>0]|0;E=j&255;B=a[r+S>>0]|0;F=B&255;D=(S|0)!=0;if((S|0)<(pa|0)&D){if((E|0)<(qa|0))w=d[Ea+(E+1<<3)+F>>0]|0;else w=0;if((F|0)<(qa|0))x=(d[F+1+(Ea+(E<<3))>>0]|0)+w|0;else x=w;k=c[Ha>>2]|0;w=1;k=(Ta(k+224|0,k+(((x|0)<1?x:1)+oa)|0)|0)&255}else{w=0;k=((B|j)<<24>>24==0|(E|0)==(m|0)&(F|0)==(u|0))&1}a[Ea+(E<<3)+F>>0]=k;x=ra-y|0;if((S|0)==(pa|0)){a[Fa>>0]=x+255;A=x+-2|0;x=1}else{A=15;x=0}if((E|0)<(ma|0))y=(a[Ea+(E+1<<3)+F>>0]|0)!=0&1;else y=0;if((F|0)<(ma|0))y=((a[F+1+(Ea+(E<<3))>>0]|0)!=0&1)<<1|y;do if((A|0)>-1&k<<24>>24!=0){if(!(c[(c[Oa>>2]|0)+13100>>2]|0))if(ja){k=832;j=ia}else Ba=65;else if($){z=(a[za>>0]|0)!=0;if(z|ja){k=z?896:832;j=z?X:ia}else Ba=65}else{k=896;j=X}do if((Ba|0)==65){Ba=0;k=832+((y<<4)+16)|0;if(Aa){y=(B|j)<<24>>24==0?ia:la;if(ka){j=y+_|0;break}else{j=y+21|0;break}}else j=T}while(0);if((A|0)>0){z=j+92|0;y=A;while(1){Q=c[Ha>>2]|0;if(Ta(Q+224|0,Q+(z+(d[k+((d[ta+y>>0]<<2)+(d[sa+y>>0]|0))>>0]|0))|0)|0){a[Fa+(x&255)>>0]=y;x=x+1<<24>>24;w=0}if((y|0)>1)y=y+-1|0;else break}}if(!w){if(c[(c[Oa>>2]|0)+13100>>2]|0)if($?(a[za>>0]|0)==0:0)Ba=78;else w=Y;else Ba=78;if((Ba|0)==78){Ba=0;w=(S|0)==0?Z:j+2|0}Q=c[Ha>>2]|0;if((Ta(Q+224|0,Q+(w+92)|0)|0)!=1)break}a[Fa+(x&255)>>0]=0;x=x+1<<24>>24}while(0);Q=x&255;if(x<<24>>24){w=Aa&D?2:0;if(!(c[(c[Oa>>2]|0)+13116>>2]|0))D=0;else{if($?(a[za>>0]|0)==0:0)t=V;else t=W;D=(d[Ka+199+t>>0]|0)>>>2&255}A=(S|0)!=(pa|0)&(v|0)==0&1|w;B=a[Fa>>0]|0;j=B&255;k=Q>>>0<8?Q:8;if((k|0)>0){z=A<<2;w=-1;y=0;v=1;do{P=v+z|0;O=c[Ha>>2]|0;P=(Ta(O+224|0,O+((na?P+16|0:P)+136)|0)|0)&255;a[Ga+y>>0]=P;if(!(P<<24>>24))v=((v+-1|0)>>>0<2&1)+v|0;else{w=(w|0)==-1?y:w;v=0}y=y+1|0}while((y|0)<(k|0));P=w}else{P=-1;v=1}y=Q+-1|0;O=a[Fa+y>>0]|0;w=O&255;do if(!(a[za>>0]|0)){if((c[aa>>2]|0)==1?ca&(ba&(c[(c[Oa>>2]|0)+13104>>2]|0)!=0):0){w=0;break}w=(j-w|0)>3&1}else w=0;while(0);if((P|0)!=-1){M=c[Ha>>2]|0;M=Ta(M+224|0,M+((na?A|4:A)|160)|0)|0;N=Ga+P|0;a[N>>0]=(d[N>>0]|0)+M}N=(w|0)!=0;k=N&(a[(c[da>>2]|0)+4>>0]|0)!=0;M=k?y&255:x;k=k?17:16;y=M&255;if(!(M<<24>>24))w=0;else{x=0;w=0;do{w=Va((c[Ha>>2]|0)+224|0)|0|w<<1;x=x+1|0}while((x|0)!=(y|0))}M=E<<2;K=F<<2;L=Ka+199+t|0;F=0;E=0;G=w<>0]|0)+M|0;I=(d[ta+I>>0]|0)+K|0;do if((J|0)<8){B=(d[Ga+J>>0]|0)+1|0;A=(J|0)==(P|0);if((B|0)==((A?3:2)|0)&0==((A?0:0)|0))w=0;else{A=E;z=j;w=B;x=0;break}while(1){if(!(Va((c[Ha>>2]|0)+224|0)|0)){Ba=106;break}w=w+1|0;if((w|0)>=31){Ba=109;break}}do if((Ba|0)==106){Ba=0;if((w|0)>=3){Ba=109;break}if((j|0)>0){y=0;x=0}else{x=0;break}do{x=Va((c[Ha>>2]|0)+224|0)|0|x<<1;y=y+1|0}while((y|0)!=(j|0))}while(0);if((Ba|0)==109){Ba=0;k=w+-3|0;y=k+j|0;if((y|0)>0){w=0;x=0;do{w=Va((c[Ha>>2]|0)+224|0)|0|w<<1;x=x+1|0}while((x|0)!=(y|0))}else w=0;x=w;w=(1<>31|0,B|0,0)|0;x=C;B=3<>31;y=c[(c[Oa>>2]|0)+13116>>2]|0;if((x|0)>(z|0)|(x|0)==(z|0)&w>>>0>B>>>0){z=j+1|0;z=(y|0)==0?((z|0)<4?z:4):z}else z=j;if((E|0)!=0|(y|0)==0){A=E;break}k=a[L>>0]|0;y=(k&255)>>>2&255;if((A|0)<(3<>24==0|(A<<1|0)>=(1<>0]=y+k<<24>>24;A=1}else{w=0;while(1){if(!(Va((c[Ha>>2]|0)+224|0)|0)){Ba=120;break}w=w+1|0;if((w|0)>=31){Ba=123;break}}do if((Ba|0)==120){Ba=0;if((w|0)>=3){Ba=123;break}if((j|0)>0){y=0;x=0}else{x=0;break}do{x=Va((c[Ha>>2]|0)+224|0)|0|x<<1;y=y+1|0}while((y|0)!=(j|0))}while(0);if((Ba|0)==123){Ba=0;k=w+-3|0;y=k+j|0;if((y|0)>0){w=0;x=0;do{w=Va((c[Ha>>2]|0)+224|0)|0|w<<1;x=x+1|0}while((x|0)!=(y|0))}else w=0;x=w;w=(1<>31;y=c[(c[Oa>>2]|0)+13116>>2]|0;if((z|0)>=(3<>0]|0;y=(k&255)>>>2&255;if((z|0)<(3<>24==0|(z<<1|0)>=(1<>0]=y+k<<24>>24;A=1;z=j}while(0);if(N&(a[(c[da>>2]|0)+4>>0]|0)!=0){j=Jf(w|0,x|0,F|0,0)|0;F=(j&1|0)==0?1:D<<24>>24!=O<<24>>24;E=Hf(0,0,w|0,x|0)|0;w=F?w:E;x=F?x:C}else j=F;k=(G&32768|0)==0;y=Hf(0,0,w|0,x|0)|0;y=k?w:y;x=k?x:C;k=G<<1&131070;w=y&65535;do if(!(a[za>>0]|0)){do if(!((a[(c[Oa>>2]|0)+634>>0]|0)==0|ha)){if(!(ga|(I|H|0)!=0)){o=U;break}switch(i|0){case 3:{o=(I<<3)+H|0;break}case 4:{o=(I>>>1<<3)+(H>>>1)|0;break}case 5:{o=(I>>>2<<3)+(H>>>2)|0;break}default:o=(I<<2)+H|0}o=d[ua+o>>0]|0}while(0);w=Of(y|0,x|0,n|0,ea|0)|0;w=Of(w|0,C|0,o|0,((o|0)<0)<<31>>31|0)|0;w=Jf(w|0,C|0,h|0,fa|0)|0;w=Gf(w|0,C|0,g|0)|0;x=C;if((x|0)<0){w=(w&-32768|0)==-32768&(x&268435455|0)==268435455?w&65535:-32768;break}else{G=x>>>0<0|(x|0)==0&w>>>0<32767;w=G?w:32767;w=w&65535;break}}while(0);b[Ja+((I<>1]=w;w=J+1|0;if((w|0)==(Q|0))break;F=j;E=A;G=k;j=z;J=w;D=a[Fa+w>>0]|0}}if((S|0)>0)S=S+-1|0;else break}}do if(a[za>>0]|0){if((Ca|16|0)==26?(c[(c[Oa>>2]|0)+13104>>2]|0)!=0:0)ya[c[f+2632>>2]&7](Ja,i&65535,(Ca|0)==26&1)}else{g=(i|0)==2;if(wa|0){h=c[Oa>>2]|0;if(g&(c[h+13096>>2]|0)!=0?(c[Ka+31244>>2]|0)==1:0){g=0;do{Fa=Ja+(15-g<<1)|0;Ga=b[Fa>>1]|0;Ha=Ja+(g<<1)|0;b[Fa>>1]=b[Ha>>1]|0;b[Ha>>1]=Ga;g=g+1|0}while((g|0)!=8)}g=i&65535;ya[c[f+2628>>2]&7](Ja,g,c[h+52>>2]|0);if(!(c[(c[Oa>>2]|0)+13104>>2]|0))break;if(!((Ca|16|0)==26?(c[Ka+31244>>2]|0)==1:0))break;ya[c[f+2632>>2]&7](Ja,g,(Ca|0)==26&1);break}if(g&(Aa&(c[Ka+31244>>2]|0)==1)){va[c[f+2636>>2]&7](Ja,c[(c[Oa>>2]|0)+52>>2]|0);break}h=(q|0)>(s|0)?q:s;if(!h){va[c[f+2656+(xa<<2)>>2]&7](Ja,c[(c[Oa>>2]|0)+52>>2]|0);break}g=s+4+q|0;do if((h|0)>=4)if((h|0)<8){g=(g|0)<8?g:8;break}else{g=(h|0)<12?((g|0)<24?g:24):g;break}else g=(g|0)<4?g:4;while(0);ya[c[f+2640+(xa<<2)>>2]&7](Ja,g,c[(c[Oa>>2]|0)+52>>2]|0)}while(0);if(a[Ka+304>>0]|0?(Ia|0)>0:0){h=c[Ka+284>>2]|0;g=0;do{Ka=Ja+(g<<1)|0;b[Ka>>1]=((R(b[Ma+(g<<1)>>1]|0,h)|0)>>>3)+(e[Ka>>1]|0);g=g+1|0}while((g|0)!=(Ia|0))}Da[c[f+2612+(xa<<2)>>2]&7](La,Ja,Na,c[(c[Oa>>2]|0)+52>>2]|0);l=Pa;return}function rb(a,b){a=a|0;b=b|0;a=c[a+136>>2]|0;return Ta(a+224|0,a+(b|0?47:46)|0)|0}function sb(a){a=a|0;var b=0;b=0-(tb(a)|0)&7;if(b|0)Rd(a,b);return}function tb(a){a=a|0;return c[a+8>>2]|0}function ub(a){a=a|0;var b=0;b=c[a+12>>2]|0;return b-(tb(a)|0)|0}function vb(a){a=a|0;var b=0,d=0;b=c[a+16>>2]|0;d=c[a>>2]|0;b=(d&1|0)==0?b:b+-1|0;b=(d&511|0)==0?b:b+-1|0;d=(c[a+20>>2]|0)-b|0;if((d|0)>=0)Md(a,b,d);return}function wb(a){a=a|0;var b=0,d=0,e=0;d=a+4|0;e=c[d>>2]|0;b=(e+-256|0)>>>31;c[d>>2]=e<>2]<>2]=b;if(!(b&65535))xb(a);return}function xb(a){a=a|0;var b=0,e=0;b=a+16|0;e=c[b>>2]|0;c[a>>2]=(c[a>>2]|0)+-65535+((d[e+1>>0]|0)<<1|(d[e>>0]|0)<<9);if(e>>>0<(c[a+20>>2]|0)>>>0)c[b>>2]=e+2;return}function yb(a){a=a|0;var b=0,e=0,f=0;f=c[a>>2]|0;e=a+16|0;b=c[e>>2]|0;c[a>>2]=(((d[b+1>>0]|0)<<1|(d[b>>0]|0)<<9)+-65535<<7-(d[4741+((f+-1^f)>>15)>>0]|0))+f;if(b>>>0<(c[a+20>>2]|0)>>>0)c[e>>2]=b+2;return}function zb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;d=Ab(b,d,e)|0;f=c[b+136>>2]|0;e=c[f+280>>2]|0;if(e){g=c[(c[b+200>>2]|0)+13192>>2]|0;b=d+52+e+(g<<1)|0;d=b+((b|0)>0?0:-52-g+1|0)|0;d=((d|0)%(g+52|0)|0)-g+b-d|0}a[f+272>>0]=d;return}function Ab(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=c[b+136>>2]|0;m=c[b+200>>2]|0;j=c[m+13080>>2]|0;i=(1<>2]|0)+24>>2]|0);h=j&d;j=j&e;k=c[m+13140>>2]|0;m=c[m+13064>>2]|0;l=h>>m;m=j>>m;f=g+203|0;if((a[f>>0]|0)!=0|(h|j|0)==0){a[f>>0]=(a[g+300>>0]|0)==0&1;f=a[b+2112>>0]|0}else f=c[g+276>>2]|0;if((i&d|0)!=0&(h&i|0)!=0){g=l+-1+(R(m,k)|0)|0;g=a[(c[b+4316>>2]|0)+g>>0]|0}else g=f;if((i&e|0)!=0&(j&i|0)!=0){f=(R(m+-1|0,k)|0)+l|0;f=a[(c[b+4316>>2]|0)+f>>0]|0}return g+1+f>>1|0}function Bb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=c[b+136>>2]|0;l=b+200|0;g=(e|0)>0&(e&7|0)==0;do if(g){if(((a[b+2062>>0]|0)==0?c[k+31312>>2]&4|0:0)?((e|0)%(1<>2]|0)+13080>>2]|0)|0|0)==0:0)break;if((a[(c[b+204>>2]|0)+53>>0]|0)==0?(c[k+31312>>2]&8|0)!=0:0){if(!((e|0)%(1<>2]|0)+13080>>2]|0)|0))break}else m=8;if((m|0)==8?!g:0)break;h=1<>2]|0)+(g+d+(R(c[j>>2]|0,e)|0)>>2)>>0]=2;g=g+4|0}while((g|0)<(h|0))}}while(0);g=(d|0)>0&(d&7|0)==0;do if(g){if(((a[b+2062>>0]|0)==0?c[k+31312>>2]&1|0:0)?((d|0)%(1<>2]|0)+13080>>2]|0)|0|0)==0:0)break;if((a[(c[b+204>>2]|0)+53>>0]|0)==0?(c[k+31312>>2]&2|0)!=0:0){if(!((d|0)%(1<>2]|0)+13080>>2]|0)|0))break}else m=19;if((m|0)==19?!g:0)break;j=1<>2]|0)+((R(c[h>>2]|0,g+e|0)|0)+d>>2)>>0]=2;g=g+4|0}while((g|0)<(j|0))}}while(0);return}function Cb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;g=b+200|0;j=((c[(c[g>>2]|0)+13120>>2]|0)-f|0)<=(d|0);Db(b,d,e);g=c[g>>2]|0;if(!(a[g+12941>>0]|0)){}else{g=((c[g+13124>>2]|0)-f|0)<=(e|0);h=(e|0)!=0;i=(d|0)!=0;if(i&h)Eb(b,d-f|0,e-f|0);if(i&g)Eb(b,d-f|0,e);h&j?(Eb(b,d,e-f|0),a[b+140>>0]&1):0;j&g?(Eb(b,d,e),a[b+140>>0]&1):0}return}function Db(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;$=l;l=l+32|0;U=$+8|0;N=$;Y=$+18|0;Z=$+16|0;b[Y>>1]=0;b[Z>>1]=0;_=e+200|0;k=c[_>>2]|0;h=c[k+13080>>2]|0;j=1<>h,c[k+13128>>2]|0)|0)+(f>>h)|0;i=c[e+2508>>2]|0;T=c[i+(h<<3)+4>>2]|0;M=c[i+(h<<3)>>2]|0;if((c[k+68>>2]|0)!=0?(a[k+13056>>0]|0)!=0:0)X=1;else X=(a[(c[e+204>>2]|0)+40>>0]|0)!=0;V=c[k+52>>2]|0;W=(f|0)!=0;if(W){L=h+-1|0;O=c[i+(L<<3)+4>>2]|0;L=c[i+(L<<3)>>2]|0}else{O=0;L=0}K=j+f|0;Q=c[k+13120>>2]|0;S=(K|0)>(Q|0)?Q:K;P=j+g|0;J=c[k+13124>>2]|0;P=(P|0)>(J|0)?J:P;K=(Q|0)<=(K|0)?S:S+-8|0;Q=(P|0)>(g|0);if(Q){w=W?f:8;x=(w|0)<(S|0);y=W?f+-8|0:0;z=e+4320|0;A=e+2596|0;B=N+4|0;C=e+160|0;D=Y+1|0;E=Z+1|0;F=e+4300|0;G=e+4284|0;H=e+4324|0;I=e+4304|0;J=e+4288|0;v=(y|0)>=(K|0);u=g;i=T;h=M;do{if(x){r=u+4|0;s=i+-2&-2;p=w;do{m=c[H>>2]|0;t=c[A>>2]|0;j=a[m+((R(t,u)|0)+p>>2)>>0]|0;k=j&255;t=a[m+((R(t,r)|0)+p>>2)>>0]|0;m=t&255;n=t<<24>>24==0;do if((t|j)<<24>>24){t=p+-1|0;o=Kb(e,t,u)|0;o=o+1+(Kb(e,p,u)|0)>>1;q=o+h|0;q=d[1509+((q|0)<0?0:(q|0)<51?q:51)>>0]|0;if(!(j<<24>>24))j=0;else{j=s+(k<<1)+o|0;j=d[1561+((j|0)<0?0:(j|0)<53?j:53)>>0]|0}c[N>>2]=j;if(n)j=0;else{j=s+(m<<1)+o|0;j=d[1561+((j|0)<0?0:(j|0)<53?j:53)>>0]|0}c[B>>2]=j;o=c[C>>2]|0;j=c[o+32>>2]|0;k=R(j,u)|0;k=(c[o>>2]|0)+((p<>2]|0)+56>>2])+k)|0;if(X){a[Y>>0]=Lb(e,t,u)|0;a[D>>0]=Lb(e,t,r)|0;a[Z>>0]=Lb(e,p,u)|0;a[E>>0]=Lb(e,p,r)|0;sa[c[I>>2]&7](k,j,q,N,Y,Z,V);break}else{sa[c[J>>2]&7](k,j,q,N,Y,Z,V);break}}while(0);p=p+8|0}while((p|0)<(S|0))}if(!((u|0)==0|v)){s=u+-1|0;r=y;do{n=c[z>>2]|0;t=R(c[A>>2]|0,u)|0;j=a[n+(t+r>>2)>>0]|0;m=j&255;q=r+4|0;t=a[n+(t+q>>2)>>0]|0;n=t&255;o=t<<24>>24==0;do if((t|j)<<24>>24){k=Kb(e,r,s)|0;k=k+1+(Kb(e,r,u)|0)>>1;h=(r|0)>=(f|0);i=h?T:O;h=h?M:L;p=k+h|0;p=d[1509+((p|0)<0?0:(p|0)<51?p:51)>>0]|0;if(!(j<<24>>24))j=0;else{j=(i+-2&-2)+(m<<1)+k|0;j=d[1561+((j|0)<0?0:(j|0)<53?j:53)>>0]|0}c[N>>2]=j;if(o)j=0;else{j=(i+-2&-2)+(n<<1)+k|0;j=d[1561+((j|0)<0?0:(j|0)<53?j:53)>>0]|0}c[B>>2]=j;t=c[C>>2]|0;j=c[t+32>>2]|0;k=R(j,u)|0;k=(c[t>>2]|0)+((r<>2]|0)+56>>2])+k)|0;if(X){a[Y>>0]=Lb(e,r,s)|0;a[D>>0]=Lb(e,q,s)|0;a[Z>>0]=Lb(e,r,u)|0;a[E>>0]=Lb(e,q,u)|0;sa[c[F>>2]&7](k,j,p,N,Y,Z,V);break}else{sa[c[G>>2]&7](k,j,p,N,Y,Z,V);break}}while(0);r=r+8|0}while((r|0)<(K|0))}u=u+8|0}while((u|0)<(P|0));k=c[_>>2]|0}else i=T;a:do if(c[k+4>>2]|0){z=W?O:T;A=e+4320|0;B=e+2596|0;C=U+4|0;D=e+160|0;E=Y+1|0;F=Z+1|0;G=e+4308|0;H=e+4292|0;I=e+4324|0;J=e+4312|0;K=e+4296|0;h=1;while(1){j=1<>2];k=1<>2];if(Q){u=j<<3;v=W?f:u;w=(v|0)<(S|0);x=k<<3;y=W?f-u|0:0;t=j<<2;s=k<<2;r=g;do{if(w){o=r+s|0;n=v;do{O=c[I>>2]|0;k=c[B>>2]|0;j=a[O+((R(k,r)|0)+n>>2)>>0]|0;j=j<<24>>24==2;k=(a[O+((R(k,o)|0)+n>>2)>>0]|0)==2;do if(j|k){p=n+-1|0;m=Kb(e,p,o)|0;m=m+1+(Kb(e,n,o)|0)>>1;if(j){j=Kb(e,p,r)|0;j=Mb(e,j+1+(Kb(e,n,r)|0)>>1,h,i)|0}else j=0;c[U>>2]=j;if(k)j=Mb(e,m,h,i)|0;else j=0;c[C>>2]=j;N=c[D>>2]|0;O=c[_>>2]|0;j=c[N+32+(h<<2)>>2]|0;k=R(r>>c[O+13180+(h<<2)>>2],j)|0;k=(c[N+(h<<2)>>2]|0)+((n>>c[O+13168+(h<<2)>>2]<>2])+k)|0;if(X){a[Y>>0]=Lb(e,p,r)|0;a[E>>0]=Lb(e,p,o)|0;a[Z>>0]=Lb(e,n,r)|0;a[F>>0]=Lb(e,n,o)|0;Aa[c[J>>2]&3](k,j,U,Y,Z,V);break}else{Aa[c[K>>2]&3](k,j,U,Y,Z,V);break}}while(0);n=n+u|0}while((n|0)<(S|0))}if(r){n=S-((S|0)==(c[(c[_>>2]|0)+13120>>2]|0)?0:u)|0;if((y|0)<(n|0)){p=r+-1|0;o=y;do{O=c[A>>2]|0;k=R(c[B>>2]|0,r)|0;q=o+t|0;i=(a[O+(k+o>>2)>>0]|0)==2;k=(a[O+(k+q>>2)>>0]|0)==2;do if(i|k){if(i){j=Kb(e,o,p)|0;j=j+1+(Kb(e,o,r)|0)>>1}else j=0;if(k){m=Kb(e,q,p)|0;m=m+1+(Kb(e,q,r)|0)>>1}else m=0;if(i)i=Mb(e,j,h,z)|0;else i=0;c[U>>2]=i;if(k)i=Mb(e,m,h,T)|0;else i=0;c[C>>2]=i;N=c[D>>2]|0;O=c[_>>2]|0;i=c[N+32+(h<<2)>>2]|0;j=R(r>>c[O+13184>>2],i)|0;j=(c[N+(h<<2)>>2]|0)+((o>>c[O+13172>>2]<>2])+j)|0;if(X){a[Y>>0]=Lb(e,o,p)|0;a[E>>0]=Lb(e,q,p)|0;a[Z>>0]=Lb(e,o,r)|0;a[F>>0]=Lb(e,q,r)|0;Aa[c[G>>2]&3](j,i,U,Y,Z,V);break}else{Aa[c[H>>2]&3](j,i,U,Y,Z,V);break}}while(0);o=o+u|0}while((o|0)<(n|0));i=z}else i=z}r=r+x|0}while((r|0)<(P|0))}h=h+1|0;if((h|0)==3)break a;k=c[_>>2]|0}}while(0);l=$;return}function Eb(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0;ga=l;l=l+48|0;Z=ga+16|0;_=ga+34|0;ba=ga+32|0;da=ga+8|0;ea=ga;fa=d+200|0;x=c[fa>>2]|0;y=c[x+13080>>2]|0;T=e>>y;U=f>>y;s=c[x+13128>>2]|0;i=R(U,s)|0;V=i+T|0;k=c[d+204>>2]|0;m=c[k+1668>>2]|0;n=c[m+(V<<2)>>2]|0;W=d+2504|0;X=c[W>>2]|0;Y=X+(V*148|0)|0;b[_>>1]=0;b[ba>>1]=0;c[da>>2]=0;if(!(a[k+42>>0]|0))o=0;else o=(a[k+53>>0]|0)==0;t=(a[(c[d+4352>>2]|0)+V>>0]|0)==0;w=t|o;u=(T|0)==0;c[Z>>2]=u&1;q=(U|0)==0;$=Z+4|0;c[$>>2]=q&1;r=(T|0)==(s+-1|0);aa=Z+8|0;c[aa>>2]=r&1;v=(U|0)==((c[x+13132>>2]|0)+-1|0);ca=Z+12|0;c[ca>>2]=v&1;if(w){if(u)p=0;else{if(o){g=c[k+1676>>2]|0;g=(c[g+(n<<2)>>2]|0)!=(c[g+(c[m+(V+-1<<2)>>2]<<2)>>2]|0)}else g=0;h=g&1;if(t?(Q=c[d+4328>>2]|0,(c[Q+(V<<2)>>2]|0)!=(c[Q+(T+-1+i<<2)>>2]|0)):0)g=1;a[_>>0]=g&1;p=h}if(r)j=0;else{if(o){g=c[k+1676>>2]|0;g=(c[g+(n<<2)>>2]|0)!=(c[g+(c[m+(V+1<<2)>>2]<<2)>>2]|0)}else g=0;h=g&1;if(t?(Q=c[d+4328>>2]|0,(c[Q+(V<<2)>>2]|0)!=(c[Q+(T+1+i<<2)>>2]|0)):0)g=1;a[_+1>>0]=g&1;j=h}if(q)h=0;else{if(o){g=c[k+1676>>2]|0;g=(c[g+(n<<2)>>2]|0)!=(c[g+(c[m+(V-s<<2)>>2]<<2)>>2]|0)}else g=0;h=g&1;if(t?(Q=c[d+4328>>2]|0,(c[Q+(V<<2)>>2]|0)!=(c[Q+((R(s,U+-1|0)|0)+T<<2)>>2]|0)):0)g=1;a[ba>>0]=g&1}if(v)g=0;else{if(o){i=c[k+1676>>2]|0;i=(c[i+(n<<2)>>2]|0)!=(c[i+(c[m+(s+V<<2)>>2]<<2)>>2]|0)}else i=0;g=i&1;if(t?(Q=c[d+4328>>2]|0,(c[Q+(V<<2)>>2]|0)!=(c[Q+((R(s,U+1|0)|0)+T<<2)>>2]|0)):0)i=1;a[ba+1>>0]=i&1}if(!(q|u)){if(t){Q=c[d+4328>>2]|0;if(p<<24>>24==0?(c[Q+(V<<2)>>2]|0)==(c[Q+(T+-1+(R(s,U+-1|0)|0)<<2)>>2]|0):0)S=36;else i=1}else if(!(p<<24>>24))S=36;else i=1;if((S|0)==36)i=h;a[da>>0]=i}if(!(r|q)){if(t){Q=c[d+4328>>2]|0;if(j<<24>>24==0?(c[Q+(V<<2)>>2]|0)==(c[Q+(T+1+(R(s,U+-1|0)|0)<<2)>>2]|0):0)S=42;else h=1}else if(!(j<<24>>24))S=42;else h=1;a[da+1>>0]=h}if(!(v|r)){if(t){Q=c[d+4328>>2]|0;if(j<<24>>24==0?(c[Q+(V<<2)>>2]|0)==(c[Q+(T+1+(R(s,U+1|0)|0)<<2)>>2]|0):0)S=48;else h=1}else if(!(j<<24>>24))S=48;else h=1;if((S|0)==48)h=g;a[da+2>>0]=h}if(!(v|u)){if(t){Q=c[d+4328>>2]|0;if(p<<24>>24==0?(c[Q+(V<<2)>>2]|0)==(c[Q+(T+-1+(R(s,U+1|0)|0)<<2)>>2]|0):0)S=54;else g=1}else if(!(p<<24>>24))S=54;else g=1;a[da+3>>0]=g}}D=c[x+4>>2]|0?3:1;E=d+160|0;F=d+168|0;G=d+2672|0;M=U<<1;H=M+-1|0;I=ea+4|0;J=U+-1|0;K=T+1|0;L=T+-1|0;M=M+2|0;N=ea+4|0;O=U+1|0;Q=T<<1;P=Q+-1|0;Q=Q+2|0;C=d+2676+((w&1)<<2)|0;g=0;i=x;h=y;while(1){n=c[i+13168+(g<<2)>>2]|0;z=e>>n;q=c[i+13180+(g<<2)>>2]|0;A=f>>q;r=c[E>>2]|0;B=c[r+32+(g<<2)>>2]|0;w=1<>n;t=w>>q;n=c[i+13120>>2]>>n;v=n-z|0;s=(s|0)>(v|0)?v:s;q=c[i+13124>>2]>>q;v=q-A|0;t=(t|0)>(v|0)?v:t;v=R(B,A)|0;u=c[i+56>>2]|0;v=(c[r+(g<<2)>>2]|0)+((z<>2]|0)+w+r|0;y=X+(V*148|0)+142+g|0;switch(a[y>>0]|0){case 1:{Fb(x,v,s<>2]&1](v,x,B,w,Y,Z,s,t,g,c[(c[fa>>2]|0)+52>>2]|0);Hb(d,v,x,B,w,e,f,s,t,g);S=78;break}case 2:{o=c[Z>>2]|0;p=c[aa>>2]|0;k=c[ca>>2]|0;if(!(c[$>>2]|0)){S=1-o|0;j=0-(S<>2]=v+(0-B)+j;c[I>>2]=(c[d+172+(g<<2)>>2]|0)+((R(n,H)|0)+z-S<>2]|0)+((L+(R(c[i+13128>>2]|0,J)|0)|0)*148|0)+142+g>>0]|0)==3&1)<<2)>>2]|0,u);j=r;h=c[fa>>2]|0}i=s<>2]|0)+(((R(c[h+13128>>2]|0,J)|0)+T|0)*148|0)+142+g>>0]|0)==3&1)<<2)>>2]|0)+j|0,i|0)|0;if((p|0)!=1){S=j+i|0;Ib(m+S|0,(c[ea+(((a[(c[W>>2]|0)+((K+(R(c[(c[fa>>2]|0)+13128>>2]|0,J)|0)|0)*148|0)+142+g>>0]|0)==3&1)<<2)>>2]|0)+S|0,u)}}if(!k){S=1-o|0;m=0-(S<>2]=v+(R(t,B)|0)+m;c[N>>2]=(c[d+172+(g<<2)>>2]|0)+((R(n,M)|0)+z-S<>2]|0)+((L+(R(c[(c[fa>>2]|0)+13128>>2]|0,O)|0)|0)*148|0)+142+g>>0]|0)==3&1)<<2)>>2]|0,u);h=r}i=s<>2]|0)+(((R(c[(c[fa>>2]|0)+13128>>2]|0,O)|0)+T|0)*148|0)+142+g>>0]|0)==3&1)<<2)>>2]|0)+h|0,i|0)|0;if((p|0)!=1){S=h+i|0;Ib(j+S|0,(c[ea+(((a[(c[W>>2]|0)+((K+(R(c[(c[fa>>2]|0)+13128>>2]|0,O)|0)|0)*148|0)+142+g>>0]|0)==3&1)<<2)>>2]|0)+S|0,u)}}if(!o)if((a[(c[W>>2]|0)+((L+(R(c[(c[fa>>2]|0)+13128>>2]|0,U)|0)|0)*148|0)+142+g>>0]|0)==3){i=(R(q,P)|0)+A<>2]|0)+i|0,u,t,w,r);i=0}else i=1;else i=0;if(!p)if((a[(c[W>>2]|0)+((K+(R(c[(c[fa>>2]|0)+13128>>2]|0,U)|0)|0)*148|0)+142+g>>0]|0)==3){h=(R(q,Q)|0)+A<>2]|0)+h|0,u,t,w,r);h=0}else h=1;else h=0;S=0-(i<>2]&3](v,x,B,w,Y,Z,s,t,g,_,ba,da,c[(c[fa>>2]|0)+52>>2]|0);Hb(d,v,x,B,w,e,f,s,t,g);S=78;break}default:{}}if((S|0)==78){S=0;a[y>>0]=3}g=g+1|0;if((g|0)>=(D|0))break;h=c[fa>>2]|0;i=h;h=c[h+13080>>2]|0}l=ga;return}function Fb(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0;if((d|0)>0){g=0;while(1){Pf(a|0,b|0,c|0)|0;g=g+1|0;if((g|0)==(d|0))break;else{a=a+e|0;b=b+f|0}}}return}function Gb(a,b,d,e,f,g,h,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0;m=c[a+200>>2]|0;l=c[m+56>>2]|0;o=c[m+13120>>2]>>c[m+13168+(i<<2)>>2];m=c[m+13124>>2]>>c[m+13180+(i<<2)>>2];p=a+172+(i<<2)|0;n=k<<1;k=g<>2]|0)+((R(o,n)|0)+e<>2]|0)+((R(o,n|1)|0)+e<>2]|0)+((R(m,j)|0)+f<>2]|0)+((R(m,j|1)|0)+f<>2]|0;if(!(a[(c[b+204>>2]|0)+40>>0]|0)){if(a[m+13056>>0]|0?c[m+68>>2]|0:0)n=4}else n=4;if((n|0)==4?(y=c[m+13084>>2]|0,o=1<>2]|0,v=c[m+13180+(l<<2)>>2]|0,w=h>>y,p=i>>y,x=j+h>>y,y=k+i>>y,z=o>>u<>2],(p|0)<(y|0)):0){s=(w|0)<(x|0);r=b+4348|0;o=o>>v;q=(o|0)>0;n=p;do{if(s){b=n-i|0;l=w;do{m=c[t>>2]|0;if(a[(c[r>>2]|0)+((R(c[m+13156>>2]|0,n)|0)+l)>>0]|0?(B=c[m+13084>>2]|0,A=b<>v,B=l-h<>u<>2],q):0){m=d+(R(A,f)|0)+B|0;j=0;k=e+(R(A,g)|0)+B|0;while(1){Pf(m|0,k|0,z|0)|0;j=j+1|0;if((j|0)==(o|0))break;else{m=m+f|0;k=k+g|0}}}l=l+1|0}while((l|0)!=(x|0))}n=n+1|0}while((n|0)!=(y|0))}return}function Ib(c,d,e){c=c|0;d=d|0;e=e|0;if(!e)a[c>>0]=a[d>>0]|0;else b[c>>1]=b[d>>1]|0;return}function Jb(c,d,e,f,g,h){c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;i=(f|0)>0;if(!e){if(i){e=0;while(1){a[c>>0]=a[d>>0]|0;e=e+1|0;if((e|0)==(f|0))break;else{c=c+g|0;d=d+h|0}}}}else if(i){e=0;while(1){b[c>>1]=b[d>>1]|0;e=e+1|0;if((e|0)==(f|0))break;else{c=c+g|0;d=d+h|0}}}return}function Kb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=c[b+200>>2]|0;f=c[g+13064>>2]|0;return a[(c[b+4316>>2]|0)+((R(c[g+13140>>2]|0,e>>f)|0)+(d>>f))>>0]|0}function Lb(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;h=c[a+200>>2]|0;i=c[h+13084>>2]|0;if(((e|b|0)>=0?(j=b>>i,f=e>>i,g=c[h+13156>>2]|0,(j|0)<(g|0)):0)?(f|0)<(c[h+13160>>2]|0):0){j=(R(g,f)|0)+j|0;a=d[(c[a+4348>>2]|0)+j>>0]|0}else a=2;return a|0}function Mb(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0;g=c[a+204>>2]|0;b=(c[((e|0)==1?g+28|0:g+32|0)>>2]|0)+b|0;b=(b|0)<0?0:(b|0)<57?b:57;do if((c[(c[a+200>>2]|0)+4>>2]|0)==1){if((b|0)>=30)if((b|0)>43){b=b+-6|0;break}else{b=d[1615+(b+-30)>>0]|0;break}}else b=(b|0)<0?0:(b|0)<51?b:51;while(0);g=f+2+b|0;return d[1561+((g|0)<0?0:(g|0)<53?g:53)>>0]|0|0}function Nb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=c[a+200>>2]|0;i=((c[f+13120>>2]|0)-e|0)<=(b|0);f=((c[f+13124>>2]|0)-e|0)<=(d|0);g=(d|0)!=0;h=(b|0)!=0;if(h&g)Cb(a,b-e|0,d-e|0,e);if(g&i)Cb(a,b,d-e|0,e);if(h&f)Cb(a,b-e|0,d,e);return}function Ob(b){b=b|0;var d=0,e=0,f=0;f=c[b+60>>2]|0;Nd();Ec();d=tc(b)|0;if((d|0)>=0){c[f+4368>>2]=0;c[f+4520>>2]=0;e=c[b+808>>2]|0;if(!(e&2))d=1;else d=c[b+800>>2]&255;a[f+141>>0]=d;if((e&1|0)!=0?(c[b+800>>2]|0)>1:0)d=1;else d=2;a[f+140>>0]=d;d=0}return d|0}function Pb(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=c[a+60>>2]|0;j=g+28|0;a=c[j>>2]|0;if(!a){a=Dc(h,d,1)|0;if((a|0)>=0){c[f>>2]=a;a=0}}else{c[h+2520>>2]=0;i=h+4524|0;b[i>>1]=1;a=Tb(h,c[g+24>>2]|0,a)|0;if((a|0)>=0){a=h+2604|0;if(c[a>>2]|0)c[a>>2]=0;a=c[h+164>>2]|0;if(c[a+304>>2]|0){h=a+128|0;c[h>>2]=e[i>>1];c[h+4>>2]=0;ye(d,a);c[f>>2]=1}a=c[j>>2]|0}}return a|0}function Qb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;g=c[b+60>>2]|0;Sb(g);h=g+4412|0;d=g+4392|0;if((c[h>>2]|0)>0){b=0;do{be((c[d>>2]|0)+(b<<2)|0);b=b+1|0}while((b|0)<(c[h>>2]|0))}be(g+4396|0);be(g+4388|0);be(d);be(g+152|0);be(g+168|0);b=0;do{be(g+172+(b<<2)|0);be(g+184+(b<<2)|0);b=b+1|0}while((b|0)!=3);we(g+164|0);b=g+2524|0;yc(g,b,-1);we(b);b=0;do{pe(g+208+(b<<2)|0);b=b+1|0}while((b|0)!=16);b=0;do{pe(g+272+(b<<2)|0);b=b+1|0}while((b|0)!=32);b=0;do{pe(g+400+(b<<2)|0);b=b+1|0}while((b|0)!=256);c[g+200>>2]=0;c[g+204>>2]=0;c[g+196>>2]=0;pe(g+1424|0);be(g+2096|0);be(g+2100|0);be(g+2104|0);f=g+141|0;b=a[f>>0]|0;if((b&255)>1){e=1;do{d=g+72+(e<<2)|0;if(c[d>>2]|0){be(d);be(g+8+(e<<2)|0);b=a[f>>0]|0}e=e+1|0}while((e|0)<(b&255|0))}b=g+136|0;d=g+72|0;if((c[b>>2]|0)==(c[d>>2]|0))c[b>>2]=0;be(d);d=g+4404|0;if((c[h>>2]|0)>0){b=0;do{be((c[d>>2]|0)+(b<<4)|0);b=b+1|0}while((b|0)<(c[h>>2]|0))}be(d);c[h>>2]=0;return 0}function Rb(a){a=a|0;a=c[a+60>>2]|0;Ac(a);c[a+2592>>2]=2147483647;return}function Sb(a){a=a|0;be(a+2504|0);be(a+2508|0);be(a+4332|0);be(a+4336|0);be(a+4340|0);be(a+4344|0);be(a+4348|0);be(a+4316|0);be(a+4328|0);be(a+4352|0);be(a+4320|0);be(a+4324|0);be(a+2096|0);be(a+2104|0);be(a+2100|0);return}function Tb(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;y=b+2520|0;c[y>>2]=0;u=b+2584|0;c[b+2588>>2]=c[u>>2];c[u>>2]=0;x=b+4408|0;c[x>>2]=0;a:do if((f|0)>3){v=b+4470|0;k=b+4412|0;l=b+4396|0;m=b+4384|0;n=b+4392|0;o=b+4380|0;p=b+4404|0;q=b+4376|0;w=b+4388|0;r=b+136|0;s=b+2512|0;t=b+4480|0;while(1){j=(a[v>>0]|0)==0;if(!j){i=c[t>>2]|0;if((i|0)>0){h=0;g=0;do{g=d[e+h>>0]|g<<8;h=h+1|0}while((h|0)<(i|0))}else g=0;f=f-i|0;if((g|0)>(f|0)){e=-1094995529;break a}else{i=e+i|0;h=f}}else{while(1){g=e+1|0;if(((a[e>>0]|0)==0?(a[g>>0]|0)==0:0)?(a[e+2>>0]|0)==1:0)break;if((f|0)<5){e=-1094995529;break a}else{e=g;f=f+-1|0}}g=0;i=e+3|0;h=f+-3|0}g=j?h:g;e=c[k>>2]|0;f=c[x>>2]|0;if((e|0)<=(f|0)){e=e+1|0;f=ce(c[p>>2]|0,e,16)|0;if(!f){e=-12;break a}c[p>>2]=f;j=c[k>>2]|0;Kf(f+(j<<4)|0,0,e-j<<4|0)|0;de(w,e,4)|0;de(l,e,4)|0;de(n,e,4)|0;f=c[l>>2]|0;c[f+(c[k>>2]<<2)>>2]=1024;f=he(c[f+(c[k>>2]<<2)>>2]|0,4)|0;c[(c[n>>2]|0)+(c[k>>2]<<2)>>2]=f;c[k>>2]=e;f=c[x>>2]|0}c[m>>2]=c[(c[l>>2]|0)+(f<<2)>>2];c[o>>2]=c[(c[n>>2]|0)+(f<<2)>>2];e=c[p>>2]|0;g=Ub(b,i,g,e+(f<<4)|0)|0;c[(c[w>>2]|0)+(c[x>>2]<<2)>>2]=c[q>>2];c[(c[l>>2]|0)+(c[x>>2]<<2)>>2]=c[m>>2];A=c[o>>2]|0;z=c[n>>2]|0;j=c[x>>2]|0;c[x>>2]=j+1;c[z+(j<<2)>>2]=A;if((g|0)<0){e=g;break a}e=Vb((c[r>>2]|0)+204|0,c[e+(f<<4)+12>>2]|0,c[e+(f<<4)+8>>2]|0)|0;if((e|0)<0)break a;Wb(b)|0;if((c[s>>2]&-2|0)==36)c[u>>2]=1;f=h-g|0;if((f|0)<=3)break;else e=i+g|0}if((c[x>>2]|0)>0){g=b+4376|0;h=b+4392|0;i=b+4380|0;j=b+4404|0;f=0;do{c[g>>2]=c[(c[w>>2]|0)+(f<<2)>>2];c[i>>2]=c[(c[h>>2]|0)+(f<<2)>>2];A=c[j>>2]|0;if((Xb(b,c[A+(f<<4)+12>>2]|0,c[A+(f<<4)+8>>2]|0)|0)<0)break a;f=f+1|0}while((f|0)<(c[x>>2]|0))}}else e=0;while(0);return e|0}function Ub(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;n=b+4376|0;c[n>>2]=0;a:do if((e|0)>1){g=0;while(1){if(!(a[d+g>>0]|0)){h=g+-1|0;if((g|0)>0)g=(a[d+h>>0]|0)==0?h:g;h=g+2|0;if(((h|0)<(e|0)?(a[d+(g+1)>>0]|0)==0:0)?(i=a[d+h>>0]|0,(i&255)<4):0)break}h=g+2|0;if((g+3|0)<(e|0))g=h;else break a}e=i<<24>>24==3?e:g;h=g}else h=0;while(0);b:do if((h|0)<(e+-1|0)){fe(f,f+4|0,e+32|0);o=c[f>>2]|0;if(!o)e=-12;else{Pf(o|0,d|0,h|0)|0;i=h+2|0;c:do if((i|0)<(e|0)){m=b+4384|0;l=b+4380|0;g=h;b=h;while(1){k=d+i|0;j=a[k>>0]|0;h=a[d+b>>0]|0;do if((j&255)<=3)if(!(h<<24>>24))if(!(a[d+(b+1)>>0]|0)){if(j<<24>>24!=3){i=g;e=b;break c}i=g+1|0;a[o+g>>0]=0;g=g+2|0;a[o+i>>0]=0;b=b+3|0;k=c[n>>2]|0;c[n>>2]=k+1;h=c[m>>2]|0;if((h|0)>(k|0)){h=c[l>>2]|0;if(!h)break}else{h=h<<1;c[m>>2]=h;de(l,h,4)|0;h=c[l>>2]|0;if(!h){e=-12;break b}}c[h+((c[n>>2]|0)+-1<<2)>>2]=i}else{h=0;p=26}else p=26;else{a[o+g>>0]=h;a[o+(g+1)>>0]=a[d+(b+1)>>0]|0;g=g+2|0;b=i;h=a[k>>0]|0;p=26}while(0);if((p|0)==26){p=0;a[o+g>>0]=h;g=g+1|0;b=b+1|0}i=b+2|0;if((i|0)>=(e|0)){p=15;break}}}else{g=h;b=h;p=15}while(0);if((p|0)==15)if((b|0)<(e|0)){i=e+g|0;h=b;while(1){a[o+g>>0]=a[d+h>>0]|0;h=h+1|0;if((h|0)==(e|0))break;else g=g+1|0}i=i-b|0}else{i=g;e=b}g=o+i|0;h=g+32|0;do{a[g>>0]=0;g=g+1|0}while((g|0)<(h|0));c[f+12>>2]=o;c[f+8>>2]=i}}else{c[f+12>>2]=d;c[f+8>>2]=e}while(0);return e|0}function Vb(a,b,c){a=a|0;b=b|0;c=c|0;return nc(a,b,c>>>0>268435455?-8:c<<3)|0}function Wb(a){a=a|0;var b=0,d=0;b=(c[a+136>>2]|0)+204|0;if(!(Sd(b)|0)){c[a+2512>>2]=Pd(b,6)|0;d=Pd(b,6)|0;b=(Pd(b,3)|0)+-1|0;c[a+2516>>2]=b;return ((b|0)<0?-1094995529:(d|0)==0&1)|0}else return -1094995529;return 0}function Xb(d,f,g){d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;f=Vb((c[d+136>>2]|0)+204|0,f,g)|0;a:do if((f|0)>=0){f=Wb(d)|0;b:do if((f|0)>=0){if(!f){f=0;break a}k=d+2512|0;switch(c[k>>2]|0){case 48:{f=fd(d)|0;if((f|0)<0)break b;else{f=0;break a}}case 34:{f=jd(d)|0;if((f|0)<0)break b;else{f=0;break a}}case 40:case 39:{f=pd(d)|0;if((f|0)<0)break b;else{f=0;break a}}case 9:case 8:case 7:case 6:case 21:case 20:case 19:case 18:case 17:case 16:case 5:case 4:case 3:case 2:case 0:case 1:{f=Yb(d)|0;if((f|0)<0)break a;i=d+2592|0;g=c[i>>2]|0;j=c[k>>2]|0;c:do if((g|0)==2147483647){switch(j|0){case 18:case 16:case 17:case 21:{g=c[d+2572>>2]|0;break}case 20:case 19:{g=-2147483648;break}default:{g=2147483647;break c}}c[i>>2]=g}while(0);h=(j|0)==9;if((j&-2|0)==8){if((c[d+2572>>2]|0)<=(g|0)){c[d+2604>>2]=0;f=0;break a}if(h)c[i>>2]=-2147483648}if(!(a[d+1448>>0]|0))if(!(c[d+2520>>2]|0))break b;else f=j;else{f=Zb(d)|0;if((f|0)<0)break a;f=c[k>>2]|0}if((f|0)!=(c[d+4416>>2]|0)){f=-1094995529;break a}f=_b(d)|0;k=c[d+200>>2]|0;if((f|0)>=(R(c[k+13132>>2]|0,c[k+13128>>2]|0)|0))c[d+2604>>2]=1;if((f|0)<0)break b;else{f=0;break a}}case 37:case 36:{f=d+4364|0;b[f>>1]=(e[f>>1]|0)+1&255;c[d+2592>>2]=2147483647;f=0;break a}default:{f=0;break a}}}while(0);f=(c[(c[d+4>>2]|0)+688>>2]&8|0)==0?0:f}while(0);return f|0}function Yb(f){f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=f+136|0;v=(c[u>>2]|0)+204|0;t=(Sd(v)|0)&255;m=f+1448|0;a[m>>0]=t;n=f+2512|0;g=c[n>>2]|0;if(!(t<<24>>24==0|(g+-16|0)>>>0>4)?(t=f+4364|0,b[t>>1]=(e[t>>1]|0)+1&255,c[f+2592>>2]=2147483647,(g+-19|0)>>>0<2):0){zc(f);g=c[n>>2]|0}l=f+2046|0;a[l>>0]=0;if((g&-8|0)==16)a[l>>0]=Sd(v)|0;g=Ud(v)|0;c[f+1428>>2]=g;a:do if(g>>>0<=255?(i=c[f+400+(g<<2)>>2]|0,(i|0)!=0):0){h=a[m>>0]|0;if(!(h<<24>>24)){g=f+204|0;i=c[i+4>>2]|0;if((c[g>>2]|0)!=(i|0)){g=-1094995529;break}t=g}else{t=f+204|0;i=c[i+4>>2]|0}c[t>>2]=i;j=c[n>>2]|0;k=(j|0)==21;if(k?(c[f+2588>>2]|0)==1:0)a[l>>0]=1;s=f+200|0;g=c[s>>2]|0;i=c[(c[f+272+(c[i>>2]<<2)>>2]|0)+4>>2]|0;if((g|0)!=(i|0)){c[s>>2]=i;do if(g|0?!(k|(j&-8|0)!=16):0){if(((c[i+13120>>2]|0)==(c[g+13120>>2]|0)?(c[i+13124>>2]|0)==(c[g+13124>>2]|0):0)?(c[i+76+(((c[i+72>>2]|0)+-1|0)*12|0)>>2]|0)==(c[g+76+(((c[g+72>>2]|0)+-1|0)*12|0)>>2]|0):0)break;a[l>>0]=0}while(0);zc(f);g=oc(f,c[s>>2]|0)|0;if((g|0)<0)break;g=f+4364|0;b[g>>1]=(e[g>>1]|0)+1&255;c[f+2592>>2]=2147483647;g=c[s>>2]|0;h=a[m>>0]|0}r=c[f+4>>2]|0;c[r+832>>2]=d[g+302>>0];c[r+836>>2]=d[g+335>>0];r=f+1449|0;a[r>>0]=0;do if(!(h<<24>>24)){if(a[(c[t>>2]|0)+41>>0]|0){a[r>>0]=Sd(v)|0;g=c[s>>2]|0}g=(R(c[g+13128>>2]<<1,c[g+13132>>2]|0)|0)+-2|0;o=g>>>0>65535;g=o?g>>>16:g;o=o?16:0;p=(g&65280|0)==0;g=Pd(v,(p?o:o|8)+(d[2334+(p?g:g>>>8)>>0]|0)|0)|0;c[f+1432>>2]=g;p=c[s>>2]|0;if(g>>>0>=(R(c[p+13132>>2]|0,c[p+13128>>2]|0)|0)>>>0){g=-1094995529;break a}if(a[r>>0]|0){g=f+156|0;if(!(a[g>>0]|0)){g=-1094995529;break a}else{p=g;break}}else{c[f+1436>>2]=g;i=f+2580|0;c[i>>2]=(c[i>>2]|0)+1;i=f+156|0;q=31;break}}else{c[f+1436>>2]=0;c[f+1432>>2]=0;c[f+2580>>2]=0;i=f+156|0;a[i>>0]=0;q=31}while(0);if((q|0)==31){a[i>>0]=0;if((c[(c[t>>2]|0)+1624>>2]|0)>0){g=0;do{Rd(v,1);g=g+1|0}while((g|0)<(c[(c[t>>2]|0)+1624>>2]|0))}g=Ud(v)|0;c[f+1440>>2]=g;if(g>>>0>=3){g=-1094995529;break}if(!((g|0)==2?1:(c[n>>2]&-8|0)!=16)){g=-1094995529;break}g=f+1450|0;a[g>>0]=1;if(a[(c[t>>2]|0)+39>>0]|0)a[g>>0]=Sd(v)|0;if(a[(c[s>>2]|0)+8>>0]|0)a[f+1451>>0]=Pd(v,2)|0;if(((c[n>>2]|0)+-19|0)>>>0>=2)oa();c[f+1620>>2]=0;c[f+2572>>2]=0;if(!(c[f+2516>>2]|0))c[f+2576>>2]=0;do if(a[(c[s>>2]|0)+12941>>0]|0){a[f+2056>>0]=Sd(v)|0;if(!(c[(c[s>>2]|0)+4>>2]|0)){a[f+2057>>0]=0;a[f+2058>>0]=0;break}else{p=(Sd(v)|0)&255;a[f+2058>>0]=p;a[f+2057>>0]=p;break}}else{a[f+2056>>0]=0;a[f+2057>>0]=0;a[f+2058>>0]=0}while(0);c[f+2052>>2]=0;c[f+2048>>2]=0;c[f+2068>>2]=pc(v)|0;g=c[t>>2]|0;if(!(a[g+36>>0]|0)){c[f+2072>>2]=0;h=0}else{c[f+2072>>2]=pc(v)|0;h=pc(v)|0;g=c[t>>2]|0}c[f+2076>>2]=h;if(!(a[g+1631>>0]|0))h=0;else{h=(Sd(v)|0)&255;g=c[t>>2]|0}a[f+2080>>0]=h;b:do if(!(a[g+55>>0]|0)){a[f+2061>>0]=0;c[f+2084>>2]=0;g=0;q=61}else{do if(a[g+56>>0]|0){if(!(Sd(v)|0)){g=c[t>>2]|0;break}p=(Sd(v)|0)&255;a[f+2061>>0]=p;if(p<<24>>24)break b;c[f+2084>>2]=(pc(v)|0)<<1;g=(pc(v)|0)<<1;q=61;break b}while(0);a[f+2061>>0]=a[g+57>>0]|0;c[f+2084>>2]=c[g+60>>2];g=c[g+64>>2]|0;q=61}while(0);if((q|0)==61)c[f+2088>>2]=g;g=a[(c[t>>2]|0)+54>>0]|0;c:do if(!(g<<24>>24))g=0;else{do if(!(a[f+2056>>0]|0)){if(a[f+2057>>0]|0)break;if(a[f+2061>>0]|0)break c}while(0);g=(Sd(v)|0)&255}while(0);a[f+2062>>0]=g;p=i}o=f+2108|0;c[o>>2]=0;n=c[t>>2]|0;if(!((a[n+42>>0]|0)==0?!(a[n+43>>0]|0):0))q=71;d:do if((q|0)==71){q=Ud(v)|0;c[o>>2]=q;if((q|0)<=0){c[f+4368>>2]=0;break}k=(Ud(v)|0)+1|0;j=k>>4;k=k&15;l=f+2096|0;be(l);q=f+2100|0;be(q);m=f+2104|0;be(m);c[l>>2]=he(c[o>>2]|0,4)|0;c[q>>2]=he(c[o>>2]|0,4)|0;n=he(c[o>>2]|0,4)|0;c[m>>2]=n;if(c[l>>2]|0?!((n|0)==0|(c[q>>2]|0)==0):0){if((c[o>>2]|0)>0){m=(j|0)>0;n=(k|0)==0;i=0;do{if(m){g=0;h=0;do{g=(Pd(v,16)|0)+(g<<16)|0;h=h+1|0}while((h|0)!=(j|0))}else g=0;if(!n)g=(Pd(v,k)|0)+(g<>2]|0)+(i<<2)>>2]=g+1;i=i+1|0}while((i|0)<(c[o>>2]|0))}g=f+141|0;do if((d[g>>0]|0)>1){q=c[t>>2]|0;if((c[q+48>>2]|0)<=1?(c[q+44>>2]|0)<=1:0)break;c[f+4368>>2]=0;a[g>>0]=1;break d}while(0);c[f+4368>>2]=0;break}c[o>>2]=0;g=-12;break a}while(0);if(a[(c[t>>2]|0)+1628>>0]|0){h=Ud(v)|0;o=Lf(h|0,0,3)|0;m=C;q=qc(v)|0;n=((q|0)<0)<<31>>31;if((m|0)>(n|0)|(m|0)==(n|0)&o>>>0>q>>>0){g=-1094995529;break}if(h|0){g=0;do{Rd(v,8);g=g+1|0}while((g|0)!=(h|0))}}h=c[t>>2]|0;t=(c[h+16>>2]|0)+26+(c[f+2068>>2]|0)|0;i=t&255;a[f+2112>>0]=i;t=t<<24;if((t|0)<=855638016?(t>>24|0)>=(0-(c[(c[s>>2]|0)+13192>>2]|0)|0):0){t=c[f+1432>>2]|0;c[f+2500>>2]=t;if((t|0)==0?a[r>>0]|0:0){g=-1094995529;break}if((qc(v)|0)>=0){g=c[u>>2]|0;a[g+203>>0]=(a[r>>0]|0)==0&1;if(!(a[h+22>>0]|0))a[g+272>>0]=i;a[p>>0]=1;a[g+302>>0]=0;a[g+303>>0]=0;g=0}else g=-1094995529}else g=-1094995529}else g=-1094995529;while(0);return g|0}function Zb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=c[b+136>>2]|0;e=b+200|0;i=c[e>>2]|0;g=c[i+13064>>2]|0;f=c[i+13120>>2]>>g;g=(c[i+13124>>2]>>g)+1|0;i=b+2596|0;j=b+2600|0;Kf(c[b+4320>>2]|0,0,R(c[j>>2]|0,c[i>>2]|0)|0)|0;Kf(c[b+4324>>2]|0,0,R(c[j>>2]|0,c[i>>2]|0)|0)|0;i=c[e>>2]|0;Kf(c[b+4344>>2]|0,0,R(c[i+13152>>2]|0,c[i+13148>>2]|0)|0)|0;i=c[e>>2]|0;Kf(c[b+4348>>2]|0,0,R((c[i+13160>>2]|0)+1|0,(c[i+13156>>2]|0)+1|0)|0)|0;Kf(c[b+4328>>2]|0,-1,R((f<<2)+4|0,g)|0)|0;c[b+2604>>2]=0;g=b+2512|0;c[b+4416>>2]=c[g>>2];f=c[b+204>>2]|0;if(a[f+42>>0]|0)c[d+312>>2]=c[c[f+1648>>2]>>2]<>2]|0)+13080>>2];f=b+160|0;d=Bc(b,f,c[b+2572>>2]|0)|0;if((d|0)>=0){e=b+2520|0;c[(c[c[e>>2]>>2]|0)+80>>2]=(c[g>>2]&-8|0)==16&1;c[(c[f>>2]|0)+84>>2]=3-(c[b+1440>>2]|0);d=b+164|0;xe(c[d>>2]|0);d=Dc(b,c[d>>2]|0,0)|0;if((d|0)<0)h=7;else d=0}else{e=b+2520|0;h=7}if((h|0)==7){c[e>>2]=0}return d|0}function _b(a){a=a|0;var b=0,d=0,e=0;d=l;l=l+16|0;e=d+8|0;b=d;c[e>>2]=0;c[e+4>>2]=1;a=c[a+4>>2]|0;wa[c[a+816>>2]&1](a,1,e,b,1,4)|0;l=d;return c[b>>2]|0}function $b(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=c[b+60>>2]|0;p=r+200|0;h=c[p>>2]|0;s=1<>2];q=r+204|0;d=c[q>>2]|0;b=c[(c[d+1668>>2]|0)+(c[r+2500>>2]<<2)>>2]|0;e=(a[r+1449>>0]|0)==0;do if((b|0)!=0|e){if(!e?(c[(c[r+4328>>2]|0)+(c[(c[d+1672>>2]|0)+(b+-1<<2)>>2]<<2)>>2]|0)!=(c[r+1436>>2]|0):0){b=-1094995529;break}j=s+-1|0;k=r+2084|0;l=r+2508|0;m=r+2088|0;n=r+2062|0;o=r+4352|0;g=0;f=0;e=h;d=c[h+13120>>2]|0;do{if((b|0)>=(c[e+13136>>2]|0))break;h=c[(c[(c[q>>2]|0)+1672>>2]|0)+(b<<2)>>2]|0;g=c[e+13080>>2]|0;i=j+d>>g;f=((h|0)%(i|0)|0)<>2]|0)+13080>>2]|0;bc(r,f>>i,g>>i);i=c[l>>2]|0;c[i+(h<<3)>>2]=c[k>>2];c[i+(h<<3)+4>>2]=c[m>>2];a[(c[o>>2]|0)+h>>0]=a[n>>0]|0;i=cc(r,f,g,c[(c[p>>2]|0)+13080>>2]|0,0)|0;if((i|0)<0){t=8;break}b=b+1|0;La(r,b);Nb(r,f,g,s);e=c[p>>2]|0;d=c[e+13120>>2]|0}while((i|0)!=0);if((t|0)==8){c[(c[r+4328>>2]|0)+(h<<2)>>2]=-1;b=i;break}if((f+s|0)>=(d|0)?(g+s|0)>=(c[e+13124>>2]|0):0)Cb(r,f,g,s)}else b=-1094995529;while(0);return b|0}function ac(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=c[b+136>>2]|0;k=c[b+200>>2]|0;g=k+13080|0;h=1<>2];l=c[b+204>>2]|0;m=c[(c[l+1672>>2]|0)+(f<<2)>>2]|0;p=c[b+1436>>2]|0;n=m-p|0;i=c[b+4328>>2]|0;j=i+(m<<2)|0;c[j>>2]=p;do if(!(a[l+43>>0]|0)){b=a[l+42>>0]|0;if(!(b<<24>>24)){c[o+312>>2]=c[k+13120>>2];b=0;break}if((f|0)!=0?(p=c[l+1676>>2]|0,(c[p+(f<<2)>>2]|0)!=(c[p+(f+-1<<2)>>2]|0)):0){p=c[g>>2]|0;c[o+312>>2]=(c[(c[l+1648>>2]|0)+(c[(c[l+1664>>2]|0)+(d>>p<<2)>>2]<<2)>>2]<>0]=1}}else{if((d|0)==0?(h+-1&e|0)==0:0)a[o+203>>0]=1;c[o+312>>2]=c[k+13120>>2];b=a[l+42>>0]|0}while(0);h=h+e|0;p=c[k+13124>>2]|0;c[o+316>>2]=(h|0)>(p|0)?p:h;h=o+31312|0;c[h>>2]=0;if(!(b<<24>>24)){if(!n){c[h>>2]=1;b=1}else b=0;if((n|0)<(c[k+13128>>2]|0)){b=b|4;c[h>>2]=b}}else{if((d|0)>0){p=c[l+1676>>2]|0;g=m+-1|0;if((c[p+(f<<2)>>2]|0)==(c[p+(c[(c[l+1668>>2]|0)+(g<<2)>>2]<<2)>>2]|0))b=0;else{c[h>>2]=2;b=2}if((c[j>>2]|0)!=(c[i+(g<<2)>>2]|0)){b=b|1;c[h>>2]=b}}else b=0;if((e|0)>0){p=c[l+1676>>2]|0;g=m-(c[k+13128>>2]|0)|0;if((c[p+(f<<2)>>2]|0)!=(c[p+(c[(c[l+1668>>2]|0)+(g<<2)>>2]<<2)>>2]|0)){b=b|8;c[h>>2]=b}if((c[j>>2]|0)!=(c[i+(g<<2)>>2]|0)){b=b|4;c[h>>2]=b}}}h=(d|0)>0;if(h&(n|0)>0)g=(b>>>1&1^1)&255;else g=0;a[o+308>>0]=g;if((e|0)>0){g=c[k+13128>>2]|0;if((n|0)<(g|0))b=0;else b=(b>>>3&1^1)&255;a[o+309>>0]=b;if((n+1|0)<(g|0))b=0;else{b=c[l+1676>>2]|0;b=(c[b+(f<<2)>>2]|0)==(c[b+(c[(c[l+1668>>2]|0)+(m+1-g<<2)>>2]<<2)>>2]|0)&1}a[o+310>>0]=b;if(h&(n|0)>(g|0)){b=c[l+1676>>2]|0;b=(c[b+(f<<2)>>2]|0)==(c[b+(c[(c[l+1668>>2]|0)+(m+-1-g<<2)>>2]<<2)>>2]|0)&1}else b=0}else{a[o+309>>0]=0;a[o+310>>0]=0;b=0}a[o+311>>0]=b;return}function bc(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;h=c[e+136>>2]|0;B=e+2504|0;C=c[B>>2]|0;D=e+200|0;A=(R(c[(c[D>>2]|0)+13128>>2]|0,g)|0)+f|0;if((a[e+2056>>0]|0)==0?(a[e+2057>>0]|0)==0:0){h=0;i=0}else{if((f|0)>0?(a[h+308>>0]|0)!=0:0)i=Sa(e)|0;else i=0;if(!((g|0)<1|(i|0)!=0))if(!(a[h+309>>0]|0)){h=0;i=0}else{h=Sa(e)|0;i=0}else h=0}t=c[(c[D>>2]|0)+4>>2]|0?3:1;u=e+204|0;v=C+(A*148|0)+143|0;w=C+(A*148|0)+144|0;x=C+(A*148|0)+104|0;y=C+(A*148|0)+108|0;z=(h|0)==0;s=(i|h|0)==0;o=(i|0)==0;p=g+-1|0;q=f+-1|0;m=C+(A*148|0)+144|0;l=0;do{r=c[u>>2]|0;r=d[((l|0)==0?r+1644|0:r+1645|0)>>0]|0;if(a[e+2056+l>>0]|0){j=(l|0)==2;do if(j){h=a[v>>0]|0;a[w>>0]=h;c[y>>2]=c[x>>2];n=m}else{if(s){h=(Ua(e)|0)&255;n=C+(A*148|0)+142+l|0;a[n>>0]=h;break}if(!o){h=a[(c[B>>2]|0)+((q+(R(c[(c[D>>2]|0)+13128>>2]|0,g)|0)|0)*148|0)+142+l>>0]|0;n=C+(A*148|0)+142+l|0;a[n>>0]=h;break}if(z)h=0;else h=a[(c[B>>2]|0)+(((R(c[(c[D>>2]|0)+13128>>2]|0,p)|0)+f|0)*148|0)+142+l>>0]|0;n=C+(A*148|0)+142+l|0;a[n>>0]=h}while(0);if(h<<24>>24){h=0;do{do if(!s){if(!o){i=c[(c[B>>2]|0)+((q+(R(c[(c[D>>2]|0)+13128>>2]|0,g)|0)|0)*148|0)+(l<<4)+(h<<2)>>2]|0;break}if(z)i=0;else i=c[(c[B>>2]|0)+(((R(c[(c[D>>2]|0)+13128>>2]|0,p)|0)+f|0)*148|0)+(l<<4)+(h<<2)>>2]|0}else i=Xa(e)|0;while(0);c[C+(A*148|0)+(l<<4)+(h<<2)>>2]=i;h=h+1|0}while((h|0)!=4);do if((a[n>>0]|0)!=1){if(!j){if(s){c[C+(A*148|0)+100+(l<<2)>>2]=Za(e)|0;break}if(!o){c[C+(A*148|0)+100+(l<<2)>>2]=c[(c[B>>2]|0)+((q+(R(c[(c[D>>2]|0)+13128>>2]|0,g)|0)|0)*148|0)+100+(l<<2)>>2];break}if(z)h=0;else h=c[(c[B>>2]|0)+(((R(c[(c[D>>2]|0)+13128>>2]|0,p)|0)+f|0)*148|0)+100+(l<<2)>>2]|0;c[C+(A*148|0)+100+(l<<2)>>2]=h}}else{h=0;do{do if(c[C+(A*148|0)+(l<<4)+(h<<2)>>2]|0){if(s){i=Ya(e)|0;break}if(!o){i=c[(c[B>>2]|0)+((q+(R(c[(c[D>>2]|0)+13128>>2]|0,g)|0)|0)*148|0)+48+(l<<4)+(h<<2)>>2]|0;break}if(!z)i=c[(c[B>>2]|0)+(((R(c[(c[D>>2]|0)+13128>>2]|0,p)|0)+f|0)*148|0)+48+(l<<4)+(h<<2)>>2]|0;else i=0}else i=0;while(0);c[C+(A*148|0)+48+(l<<4)+(h<<2)>>2]=i;h=h+1|0}while((h|0)!=4);if(s){a[C+(A*148|0)+96+l>>0]=Wa(e)|0;break}if(!o){a[C+(A*148|0)+96+l>>0]=a[(c[B>>2]|0)+((q+(R(c[(c[D>>2]|0)+13128>>2]|0,g)|0)|0)*148|0)+96+l>>0]|0;break}if(z)h=0;else h=a[(c[B>>2]|0)+(((R(c[(c[D>>2]|0)+13128>>2]|0,p)|0)+f|0)*148|0)+96+l>>0]|0;a[C+(A*148|0)+96+l>>0]=h}while(0);b[C+(A*148|0)+112+(l*10|0)>>1]=0;j=0;do{h=c[C+(A*148|0)+(l<<4)+(j<<2)>>2]|0;i=j;j=j+1|0;k=C+(A*148|0)+112+(l*10|0)+(j<<1)|0;b[k>>1]=h;if((a[n>>0]|0)==2){if((i|0)>1){h=0-h|0;b[k>>1]=h}}else if(c[C+(A*148|0)+48+(l<<4)+(i<<2)>>2]|0){h=0-h|0;b[k>>1]=h}b[k>>1]=h<<16>>16<>0]=0;l=l+1|0}while((l|0)<(t|0));return}function cc(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;p=c[b+136>>2]|0;s=1<>2]|0;k=b+204|0;i=c[k>>2]|0;o=(1<<(c[j+13080>>2]|0)-(c[i+24>>2]|0))+-1|0;c[p+31232>>2]=h;r=s+e|0;if(((r|0)<=(c[j+13120>>2]|0)?(s+f|0)<=(c[j+13124>>2]|0):0)?(c[j+13064>>2]|0)>>>0>>0:0){j=eb(b,h,e,f)|0;i=c[k>>2]|0}else j=(c[j+13064>>2]|0)>>>0>>0&1;if(a[i+22>>0]|0?((c[(c[q>>2]|0)+13080>>2]|0)-(c[i+24>>2]|0)|0)>>>0<=g>>>0:0){a[p+300>>0]=0;c[p+280>>2]=0}if(a[b+2080>>0]|0?((c[(c[q>>2]|0)+13080>>2]|0)-(d[i+1632>>0]|0)|0)>>>0<=g>>>0:0)a[p+301>>0]=0;a:do if(!j){i=dc(b,e,f,g)|0;if((i|0)>=0){i=c[q>>2]|0;j=1<>2];if((r|0)%(j|0)|0|0?(r|0)<(c[i+13120>>2]|0):0){i=1;break}s=s+f|0;if((s|0)%(j|0)|0|0?(s|0)<(c[i+13124>>2]|0):0){i=1;break}i=(_a(b)|0)==0&1}}else{l=s>>1;m=l+e|0;n=l+f|0;g=g+-1|0;k=h+1|0;i=cc(b,e,f,g,k)|0;if((i|0)>=0){do if(i){j=c[q>>2]|0;if((m|0)<(c[j+13120>>2]|0)){i=cc(b,m,f,g,k)|0;if((i|0)<0)break a;if(!i){i=0;break}j=c[q>>2]|0}if((n|0)<(c[j+13124>>2]|0)){i=cc(b,e,n,g,k)|0;if((i|0)<0)break a;if(!i){i=0;break}j=c[q>>2]|0}if((m|0)<(c[j+13120>>2]|0)?(n|0)<(c[j+13124>>2]|0):0){i=cc(b,m,n,g,k)|0;if((i|0)<0)break a}}else i=0;while(0);if((o&r|0)==0?(o&s+f|0)==0:0)c[p+276>>2]=a[p+272>>0];if(!i)i=0;else{i=c[q>>2]|0;if((m+l|0)<(c[i+13120>>2]|0))i=1;else i=(n+l|0)<(c[i+13124>>2]|0);i=i&1}}}while(0);return i|0}function dc(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;y=c[b+136>>2]|0;B=b+200|0;w=c[B>>2]|0;v=c[w+13064>>2]|0;u=c[w+13140>>2]|0;r=b+204|0;w=1<<(c[w+13080>>2]|0)-(c[(c[r>>2]|0)+24>>2]|0);c[y+31236>>2]=e;c[y+31240>>2]=f;m=y+31252|0;a[m>>0]=1;o=y+31244|0;c[o>>2]=1;j=y+31248|0;c[j>>2]=0;p=y+31254|0;a[p>>0]=0;n=y+31253|0;a[n>>0]=0;k=b+4332|0;t=(R(f>>v,u)|0)+(e>>v)|0;a[(c[k>>2]|0)+t>>0]=0;x=y+31268|0;a[x>>0]=1;a[x+1>>0]=1;a[x+2>>0]=1;a[x+3>>0]=1;x=1<>v;w=w+-1|0;if(a[(c[r>>2]|0)+40>>0]|0){s=($a(b)|0)&255;a[y+31256>>0]=s;if(s<<24>>24)ec(b,e,f,g)}else a[y+31256>>0]=0;s=(v|0)>0;if(s){h=0;i=t;while(1){Kf((c[k>>2]|0)+i|0,0,v|0)|0;h=h+1|0;if((h|0)==(v|0))break;else i=i+u|0}}if(!((c[o>>2]|0)==1?(c[(c[B>>2]|0)+13064>>2]|0)!=(g|0):0))q=9;if((q|0)==9?(i=fb(b,g)|0,c[j>>2]=i,k=c[o>>2]|0,a[p>>0]=(i|0)==3&(k|0)==1&1,(k|0)!=1):0)oa();if((((c[j>>2]|0)==0?(l=c[B>>2]|0,(c[l+68>>2]|0)!=0):0)?(c[l+13048>>2]|0)>>>0<=g>>>0:0)?(c[l+13052>>2]|0)>>>0>=g>>>0:0){h=(gb(b)|0)&255;a[n>>0]=h}else h=a[n>>0]|0;if(h<<24>>24){fc(b,e,f,g);h=gc(b,e,f,g)|0;if(a[(c[B>>2]|0)+13056>>0]|0)ec(b,e,f,g);if((h|0)>=0)q=22}else{hc(b,e,f,g);q=22}a:do if((q|0)==22){do if(!(a[n>>0]|0)){if(!(a[m>>0]|0)){if(a[b+2061>>0]|0)break;Bb(b,e,f,g);break}h=c[B>>2]|0;if((c[o>>2]|0)==1)h=(d[p>>0]|0)+(c[h+13092>>2]|0)|0;else h=c[h+13088>>2]|0;a[y+31255>>0]=h;h=ic(b,e,f,e,f,e,f,g,g,0,0,2592,2592)|0;if((h|0)<0)break a}while(0);if(a[(c[r>>2]|0)+22>>0]|0?(a[y+300>>0]|0)==0:0)zb(b,e,f,g);if(s){j=b+4316|0;k=y+272|0;i=0;h=t;while(1){Kf((c[j>>2]|0)+h|0,a[k>>0]|0,v|0)|0;i=i+1|0;if((i|0)==(v|0))break;else h=h+u|0}}if((w&x+e|0)==0?(w&x+f|0)==0:0)c[y+276>>2]=a[y+272>>0];h=c[B>>2]|0;i=c[h+13064>>2]|0;k=x>>i;j=e>>i;i=f>>i;if((k|0)>0?(z=b+4336|0,A=c[y+31232>>2]&255,Kf((c[z>>2]|0)+((R(c[h+13140>>2]|0,i)|0)+j)|0,A|0,k|0)|0,(k|0)!=1):0){h=1;do{Kf((c[z>>2]|0)+((R(c[(c[B>>2]|0)+13140>>2]|0,h+i|0)|0)+j)|0,A|0,k|0)|0;h=h+1|0}while((h|0)!=(k|0));h=0}else h=0}while(0);return h|0}function ec(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;k=1<>2]|0;h=c[j+13084>>2]|0;l=c[j+13156>>2]|0;f=k+d|0;g=c[j+13120>>2]|0;k=k+e|0;j=c[j+13124>>2]|0;e=e>>h;k=((k|0)>(j|0)?j:k)>>h;if((e|0)<(k|0)){j=d>>h;h=((f|0)>(g|0)?g:f)>>h;i=(j|0)<(h|0);g=b+4348|0;do{if(i){d=R(e,l)|0;f=j;do{a[(c[g>>2]|0)+(f+d)>>0]=2;f=f+1|0}while((f|0)!=(h|0))}e=e+1|0}while((e|0)!=(k|0))}return}function fc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=c[a+200>>2]|0;f=c[h+13084>>2]|0;e=1<>f;h=c[h+13156>>2]|0;g=b>>f;f=d>>f;d=(e|0)==0?1:e;if((d|0)>0){b=a+4340|0;e=0;do{Kf((c[b>>2]|0)+((R(e+f|0,h)|0)+g)|0,1,d|0)|0;e=e+1|0}while((e|0)<(d|0))}return}function gc(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;t=l;l=l+32|0;q=t;s=1<>2]|0;j=c[y+32>>2]|0;m=R(j,f)|0;k=b+200|0;i=c[k>>2]|0;h=c[i+56>>2]|0;m=(c[y>>2]|0)+((e<>2]|0;u=c[i+13184>>2]|0;o=R(f>>u,n)|0;v=c[i+13172>>2]|0;o=(c[y+4>>2]|0)+((e>>v<>2]|0;w=c[i+13188>>2]|0;r=R(f>>w,p)|0;x=c[i+13176>>2]|0;r=(c[y+8>>2]|0)+((e>>x<>0]|0,s<>x,s>>w)|0)+(R(s>>v,s>>u)|0)|0;h=(R(u,d[i+13045>>0]|0)|0)+h|0;i=mc((c[b+136>>2]|0)+224|0,h+7>>3)|0;if(!(a[b+2061>>0]|0))Bb(b,e,f,g);e=nc(q,i,h)|0;if((e|0)>=0){y=b+2608|0;e=c[k>>2]|0;sa[c[y>>2]&7](m,j,s,s,q,d[e+13044>>0]|0,c[e+52>>2]|0);e=c[k>>2]|0;sa[c[y>>2]&7](o,n,s>>c[e+13172>>2],s>>c[e+13184>>2],q,d[e+13045>>0]|0,c[e+52>>2]|0);e=c[k>>2]|0;sa[c[y>>2]&7](r,p,s>>c[e+13176>>2],s>>c[e+13188>>2],q,d[e+13045>>0]|0,c[e+52>>2]|0);e=0}l=t;return e|0}function hc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+16|0;p=s;r=c[b+136>>2]|0;j=(c[r+31248>>2]|0)==3;h=1<>0]=hb(b)|0;f=f+1|0}while((f|0)<(q|0));g=g+1|0}while((g|0)<(q|0));h=h>>(j&1);i=r+31264|0;j=r+31260|0;f=0;do{k=f<<1;m=(R(f,h)|0)+e|0;g=0;do{n=g+k|0;o=a[p+n>>0]|0;if(!(o<<24>>24))c[i>>2]=jb(b)|0;else c[j>>2]=ib(b)|0;a[r+31268+n>>0]=lc(b,(R(g,h)|0)+d|0,m,h,o&255)|0;g=g+1|0}while((g|0)<(q|0));f=f+1|0}while((f|0)<(q|0));switch(c[(c[b+200>>2]|0)+4>>2]|0){case 3:{h=0;do{j=h<<1;i=0;do{g=kb(b)|0;k=i+j|0;a[r+31281+k>>0]=g;f=a[r+31268+k>>0]|0;if((g|0)!=4){p=a[1634+g>>0]|0;f=f<<24>>24==p<<24>>24?34:p}a[r+31277+k>>0]=f;i=i+1|0}while((i|0)<(q|0));h=h+1|0}while((h|0)<(q|0));break}case 2:{g=kb(b)|0;a[r+31281>>0]=g;f=a[r+31268>>0]|0;if((g|0)!=4){b=a[1634+g>>0]|0;f=f<<24>>24==b<<24>>24?34:b}a[r+31277>>0]=a[1638+(f&255)>>0]|0;break}case 0:break;default:{g=kb(b)|0;f=a[r+31268>>0]|0;if((g|0)!=4){b=a[1634+g>>0]|0;f=f<<24>>24==b<<24>>24?34:b}a[r+31277>>0]=f}}l=s;return}function ic(b,e,f,g,h,i,j,k,m,n,o,p,q){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=l;l=l+16|0;B=E+8|0;C=E;A=c[b+136>>2]|0;r=c[p>>2]|0;c[B>>2]=r;s=c[p+4>>2]|0;v=B+4|0;c[v>>2]=s;x=c[q>>2]|0;c[C>>2]=x;q=c[q+4>>2]|0;w=C+4|0;c[w>>2]=q;u=a[A+31254>>0]|0;if(u<<24>>24){if((n|0)==1){c[A+288>>2]=d[A+31268+o>>0];p=(c[(c[b+200>>2]|0)+4>>2]|0)==3?o:0;D=5}}else{c[A+288>>2]=d[A+31268>>0];p=0;D=5}if((D|0)==5){c[A+292>>2]=d[A+31277+p>>0];c[A+296>>2]=d[A+31281+p>>0]}y=b+200|0;p=c[y>>2]|0;t=(c[p+13076>>2]|0)>>>0>>0;if(((!t?(c[p+13072>>2]|0)>>>0>>0:0)?(d[A+31255>>0]|0)>(n|0):0)?!((n|0)==0&u<<24>>24!=0):0)t=(lb(b,m)|0)&255;else{if((c[p+13088>>2]|0)==0?(c[A+31244>>2]|0)==0:0)p=(n|0)==0&(c[A+31248>>2]|0)!=0;else p=0;if(t)p=1;else p=p|(n|0)==0&u<<24>>24!=0;t=p&1}p=c[(c[y>>2]|0)+4>>2]|0;if((m|0)>2)if(!p)p=x;else D=20;else if((p|0)==3)D=20;else p=x;if((D|0)==20){p=(n|0)!=0;if(!(p&(r|0)==0)){r=mb(b,n)|0;c[B>>2]=r;if((c[(c[y>>2]|0)+4>>2]|0)==2?(m|0)==3|t<<24>>24==0:0){s=mb(b,n)|0;c[v>>2]=s}}else r=0;if(!(p&(x|0)==0)){p=mb(b,n)|0;c[C>>2]=p;if((c[(c[y>>2]|0)+4>>2]|0)==2?(m|0)==3|t<<24>>24==0:0){q=mb(b,n)|0;c[w>>2]=q}}else p=0}if(!(t<<24>>24)){y=c[y>>2]|0;t=c[y+13072>>2]|0;u=1<>2]|0;if(((r|n|p|0)==0?(c[A+31244>>2]|0)!=1:0)?((q|s|0)==0?1:(c[y+4>>2]|0)!=2):0)q=1;else q=nb(b,n)|0;p=jc(b,e,f,g,h,i,j,k,m,o,q,B,C)|0;if((p|0)>=0){if(q|0?(z=1<>t,v)|0;p=0;do{a[(c[r>>2]|0)+((p+e>>t)+s)>>0]=1;p=p+u|0}while((p|0)<(z|0));q=q+u|0}while((q|0)<(z|0))}if(((a[b+2061>>0]|0)==0?(Bb(b,e,f,m),(a[(c[b+204>>2]|0)+40>>0]|0)!=0):0)?(a[A+31256>>0]|0)!=0:0){ec(b,e,f,m);D=47}else D=47}}else{r=m+-1|0;t=1<=0){p=ic(b,s,f,e,f,i,j,k,r,q,1,B,C)|0;if((p|0)>=0){p=ic(b,e,t,e,f,i,j,k,r,q,2,B,C)|0;if((p|0)>=0){p=ic(b,s,t,e,f,i,j,k,r,q,3,B,C)|0;if((p|0)>-1)D=47}}}}if((D|0)==47)p=0;l=E;return p|0}function jc(d,e,f,g,h,i,j,k,l,m,n,o,p){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;A=c[d+136>>2]|0;E=d+200|0;C=l-(c[(c[E>>2]|0)+13172>>2]|0)|0;D=A+31244|0;r=1<>2]|0)==1){ed(d,e,f,r,r);uc(d,e,f,l,0)}y=(n|0)!=0;n=(c[o>>2]|0)==0;do if(y)if(n)w=10;else{r=1;w=14}else if(n?(c[p>>2]|0)==0:0){q=c[E>>2]|0;n=c[q+4>>2]|0;if((n|0)==2){if(c[o+4>>2]|0){w=10;break}if(c[p+4>>2]|0){w=10;break}}if(!((n|0)==0|(c[D>>2]|0)!=1)){if((l|0)>2|(n|0)==3){r=1<<(c[q+13172>>2]|0)+C;q=1<<(c[q+13184>>2]|0)+C;ed(d,e,f,r,q);uc(d,e,f,C,1);uc(d,e,f,C,2);n=(1<>2]|0)+4>>2]|0)!=2){n=0;break}ed(d,e,n,r,q);uc(d,e,n,C,1);uc(d,e,n,C,2);n=0;break}if((m|0)==3?(s=1<>2]|0)+l,ed(d,g,h,s,t),uc(d,g,h,l,1),uc(d,g,h,l,2),u=r+h|0,(c[(c[E>>2]|0)+4>>2]|0)==2):0){ed(d,g,u,s,t);uc(d,g,u,l,1);uc(d,g,u,l,2);n=0}else n=0}else n=0}else{r=1;w=14}while(0);if((w|0)==10)if(!(c[p>>2]|0))if((c[(c[E>>2]|0)+4>>2]|0)==2)if(!(c[o+4>>2]|0)){r=(c[p+4>>2]|0)!=0;w=14}else{r=1;w=14}else{r=0;w=14}else{r=1;w=14}a:do if((w|0)==14){s=d+204|0;if(a[(c[s>>2]|0)+22>>0]|0?(v=A+300|0,(a[v>>0]|0)==0):0){B=ab(d)|0;q=A+280|0;c[q>>2]=B;if(B){B=(bb(d)|0)==1;n=c[q>>2]|0;if(B){n=0-n|0;c[q>>2]=n}}else n=0;a[v>>0]=1;B=(c[(c[E>>2]|0)+13192>>2]|0)/2|0;if((n|0)<(-26-B|0)|(n|0)>(B+25|0)){n=-1094995529;break}zb(d,i,j,k)}if((r&(a[d+2080>>0]|0)!=0?(a[A+31256>>0]|0)==0:0)?(x=A+301|0,(a[x>>0]|0)==0):0){if(!(cb(d)|0)){a[A+302>>0]=0;n=0}else{n=c[s>>2]|0;if(!(a[n+1633>>0]|0))q=0;else{q=db(d)|0;n=c[s>>2]|0}a[A+302>>0]=a[n+1634+q>>0]|0;n=a[n+1639+q>>0]|0}a[A+303>>0]=n;a[x>>0]=1}if((l|0)<4&(c[D>>2]|0)==1){n=c[A+288>>2]|0;B=c[A+292>>2]|0;B=(B+-6|0)>>>0<9?2:(B+-22|0)>>>0<9&1;n=(n+-6|0)>>>0<9?2:(n+-22|0)>>>0<9&1}else{B=0;n=0}z=A+304|0;a[z>>0]=0;if(y)qb(d,e,f,l,n,0);q=c[E>>2]|0;n=c[q+4>>2]|0;if(!n)n=0;else{if(!((l|0)>2|(n|0)==3)){if((m|0)!=3){n=0;break}s=1<>2]|0)+l;n=0;do{q=(n<>2]|0)==1){ed(d,g,q,s,r);uc(d,g,q,l,1)}if(c[o+(n<<2)>>2]|0)qb(d,g,q,l,B,1);n=n+1|0}while((n|0)<(((c[(c[E>>2]|0)+4>>2]|0)==2?2:1)|0));n=0;while(1){q=(n<>2]|0)==1){ed(d,g,q,s,r);uc(d,g,q,l,2)}if(c[p+(n<<2)>>2]|0)qb(d,g,q,l,B,2);n=n+1|0;if((n|0)>=(((c[(c[E>>2]|0)+4>>2]|0)==2?2:1)|0)){n=0;break a}}}m=1<<(c[q+13172>>2]|0)+C;x=1<<(c[q+13184>>2]|0)+C;do if(y&(a[(c[s>>2]|0)+1630>>0]|0)!=0){if(c[D>>2]|0){l=(c[A+296>>2]|0)==4;a[z>>0]=l&1;if(!l)break}else a[z>>0]=1;kc(d,0)}else a[z>>0]=0;while(0);u=d+160|0;i=A+320|0;v=A+11680|0;j=1<0;w=d+2612+(C+-2<<2)|0;t=A+284|0;n=0;do{q=(n<>2]|0)==1){ed(d,e,q,m,x);uc(d,e,q,C,1)}if(!(c[o+(n<<2)>>2]|0)){if(a[z>>0]|0){A=c[u>>2]|0;q=c[A+36>>2]|0;r=c[E>>2]|0;s=R(f>>c[r+13184>>2],q)|0;s=(c[A+4>>2]|0)+((e>>c[r+13172>>2]<>2])+s)|0;if(k){n=0;do{b[v+(n<<1)>>1]=(R(b[i+(n<<1)>>1]|0,c[t>>2]|0)|0)>>>3;n=n+1|0}while((n|0)!=(j|0));n=j}else n=0;Da[c[w>>2]&7](s,v,q,c[r+52>>2]|0)}}else qb(d,e,q,C,B,1);n=n+1|0}while((n|0)<(((c[(c[E>>2]|0)+4>>2]|0)==2?2:1)|0));if(!(a[z>>0]|0))n=0;else{kc(d,1);n=0}do{q=(n<>2]|0)==1){ed(d,e,q,m,x);uc(d,e,q,C,2)}if(!(c[p+(n<<2)>>2]|0)){if(a[z>>0]|0){o=c[u>>2]|0;q=c[o+40>>2]|0;r=c[E>>2]|0;s=R(f>>c[r+13188>>2],q)|0;s=(c[o+8>>2]|0)+((e>>c[r+13176>>2]<>2])+s)|0;if(k){n=0;do{b[v+(n<<1)>>1]=(R(b[i+(n<<1)>>1]|0,c[t>>2]|0)|0)>>>3;n=n+1|0}while((n|0)!=(j|0));n=j}else n=0;Da[c[w>>2]&7](s,v,q,c[r+52>>2]|0)}}else qb(d,e,q,C,B,2);n=n+1|0}while((n|0)<(((c[(c[E>>2]|0)+4>>2]|0)==2?2:1)|0));n=0}}while(0);return n|0}function kc(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a+136>>2]|0;d=ob(a,b)|0;if(!d)a=0;else a=1-((pb(a,b)|0)<<1)<>2]=a;return}function lc(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+16|0;o=s;m=c[b+136>>2]|0;i=c[b+200>>2]|0;n=c[i+13084>>2]|0;p=e>>n;q=f>>n;r=c[i+13156>>2]|0;n=g>>n;i=c[i+13080>>2]|0;g=(1<>0]|0)!=0|(g&f|0)!=0){j=(R(q+-1|0,r)|0)+p|0;j=d[(c[b+4340>>2]|0)+j>>0]|0}else j=1;if((g&e|0)!=0|(a[m+308>>0]|0)!=0){e=p+-1+(R(q,r)|0)|0;e=d[(c[b+4340>>2]|0)+e>>0]|0}else e=1;g=(f>>i<>>0<2){c[o>>2]=0;c[o+4>>2]=1;i=26;j=0;g=1;break}else{c[o>>2]=e;g=(e+29&31)+2|0;c[o+4>>2]=g;i=(e+31&31)+2|0;j=e;break}else{c[o>>2]=e;c[o+4>>2]=g;if((g|0)==0|(e|0)==0){i=(e|0)==1?26:(g|0)!=1?1:26;j=e}else{i=0;j=e}}while(0);k=o+8|0;c[k>>2]=i;if(!h){f=o+4|0;if((j|0)>(g|0)){e=g&255;c[f>>2]=j;c[o>>2]=e;g=j}else e=j;if((e|0)>(i|0)){h=i&255;c[k>>2]=e;c[o>>2]=h;i=e;e=h}if((g|0)>(i|0)){c[k>>2]=g;c[f>>2]=i&255}g=c[m+31264>>2]|0;g=((g|0)>=(e|0)&1)+g|0;e=1;do{g=((g|0)>=(c[o+(e<<2)>>2]|0)&1)+g|0;e=e+1|0}while((e|0)!=3)}else g=c[o+(c[m+31260>>2]<<2)>>2]|0;f=(n|0)==0?1:n;if((f|0)>0){i=b+4340|0;j=g&255;e=0;do{Kf((c[i>>2]|0)+((R(e+q|0,r)|0)+p)|0,j|0,f|0)|0;e=e+1|0}while((e|0)<(f|0))}l=s;return g|0}function mc(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[a+16>>2]|0;e=c[a>>2]|0;d=(e&1|0)==0?d:d+-1|0;d=(e&511|0)==0?d:d+-1|0;e=(c[a+20>>2]|0)-d|0;if((e|0)<(b|0))d=0;else Md(a,d+b|0,e-b|0);return d|0}function nc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=(b|0)!=0&d>>>0<2147483640;d=e?d:0;b=e?b:0;c[a>>2]=b;c[a+12>>2]=d;c[a+16>>2]=d+8;c[a+4>>2]=b+(d+7>>3);c[a+8>>2]=0;return (e?0:-1094995529)|0}function oc(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;j=l;l=l+16|0;g=j;Sb(b);f=sc(b,e)|0;if((f|0)<0){Sb(b);c[b+200>>2]=0}else{h=b+4|0;i=c[h>>2]|0;c[i+124>>2]=c[e+13120>>2];c[i+128>>2]=c[e+13124>>2];c[i+116>>2]=c[e+12>>2];c[i+120>>2]=c[e+16>>2];c[i+136>>2]=c[e+60>>2];c[i+172>>2]=c[e+76+(((c[e+72>>2]|0)+-1|0)*12|0)+4>>2];i=e+160|0;c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];if(!(c[e+176>>2]|0))f=1;else f=c[e+184>>2]|0?2:1;i=c[h>>2]|0;c[i+392>>2]=f;if(!(c[e+188>>2]|0)){f=2;g=2;h=2}else{f=d[e+194>>0]|0;g=d[e+193>>0]|0;h=d[e+192>>0]|0}c[i+380>>2]=h;c[i+384>>2]=g;c[i+388>>2]=f;Fc(b+2608|0,c[e+52>>2]|0);g=b+200|0;if(a[e+12941>>0]|0){f=c[g>>2]|0;h=c[f+4>>2]|0?3:1;i=(1<>2])+2|0;i=R(i,i)|0;c[b+168>>2]=Yd(i<>2])|0;f=0;do{i=c[g>>2]|0;k=c[i+13124>>2]>>c[i+13180+(f<<2)>>2];m=R(c[i+13120>>2]>>c[i+13168+(f<<2)>>2]<<1,c[i+13132>>2]|0)|0;c[b+172+(f<<2)>>2]=Yd(m<>2])|0;i=c[g>>2]|0;k=R(k<<1,c[i+13128>>2]|0)|0;c[b+184+(f<<2)>>2]=Yd(k<>2])|0;f=f+1|0}while((f|0)<(h|0))}c[g>>2]=e;c[b+196>>2]=c[(c[b+208+(c[e>>2]<<2)>>2]|0)+4>>2];f=0}l=j;return f|0}function pc(a){a=a|0;return Xd(a)|0}function qc(a){a=a|0;var b=0;b=c[a+12>>2]|0;return b-(rc(a)|0)|0}function rc(a){a=a|0;return c[a+8>>2]|0}function sc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=c[b+13064>>2]|0;j=c[b+13120>>2]|0;o=c[b+13124>>2]|0;d=R((o>>d)+1|0,(j>>d)+1|0)|0;e=R(c[b+13132>>2]|0,c[b+13128>>2]|0)|0;f=b+13156|0;g=b+13160|0;h=R(c[g>>2]|0,c[f>>2]|0)|0;i=a+2596|0;c[i>>2]=(j>>2)+1;j=a+2600|0;c[j>>2]=(o>>2)+1;o=a+2504|0;c[o>>2]=ie(e,148)|0;p=ie(e,8)|0;c[a+2508>>2]=p;if(((((((!((p|0)==0|(c[o>>2]|0)==0)?(q=b+13144|0,o=b+13140|0,p=a+4332|0,c[p>>2]=Yd(R(c[o>>2]|0,c[q>>2]|0)|0)|0,o=he(c[q>>2]|0,c[o>>2]|0)|0,c[a+4336>>2]=o,!((o|0)==0|(c[p>>2]|0)==0)):0)?(k=a+4344|0,c[k>>2]=he(c[b+13148>>2]|0,c[b+13152>>2]|0)|0,q=a+4340|0,c[q>>2]=ee(h)|0,l=Yd(R((c[g>>2]|0)+1|0,(c[f>>2]|0)+1|0)|0)|0,c[a+4348>>2]=l,(c[q>>2]|0)!=0):0)?!((l|0)==0|(c[k>>2]|0)==0):0)?(m=a+4352|0,c[m>>2]=Yd(e)|0,n=a+4328|0,c[n>>2]=he(d,4)|0,q=he(d,1)|0,c[a+4316>>2]=q,(q|0)!=0):0)?(c[m>>2]|0)!=0:0)?(c[n>>2]|0)!=0:0)?(q=a+4320|0,c[q>>2]=ie(c[i>>2]|0,c[j>>2]|0)|0,p=ie(c[i>>2]|0,c[j>>2]|0)|0,c[a+4324>>2]=p,!((p|0)==0|(c[q>>2]|0)==0)):0)a=0;else{Sb(a);a=-12}return a|0}function tc(b){b=b|0;var d=0,e=0,f=0;e=c[b+60>>2]|0;c[e+4>>2]=b;f=ee(31328)|0;c[e+136>>2]=f;if((((f|0)!=0?(c[e+72>>2]=f,c[e+8>>2]=e,f=Yd(199)|0,c[e+152>>2]=f,(f|0)!=0):0)?(f=ue()|0,c[e+164>>2]=f,(f|0)!=0):0)?(d=ue()|0,c[e+2524>>2]=d,(d|0)!=0):0){c[e+2528>>2]=d;c[e+2592>>2]=2147483647;a[e+4469>>0]=1;c[e+2584>>2]=0;b=0}else{Qb(b)|0;b=-12}return b|0}function uc(d,f,g,h,i){d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0;ua=l;l=l+528|0;ia=ua+390|0;ja=ua+260|0;da=ua+130|0;ka=ua;na=c[d+136>>2]|0;oa=c[d+200>>2]|0;sa=c[oa+52>>2]|0;t=c[oa+13168+(i<<2)>>2]|0;O=c[oa+13180+(i<<2)>>2]|0;ta=1<>2]|0;v=ta<>2]|0;o=f>>m&n;p=g>>m&n;u=c[d+204>>2]|0;q=c[u+1684>>2]|0;r=n+2|0;s=c[q+((R(p,r)|0)+o<<2)>>2]|0;qa=c[d+160>>2]|0;pa=(c[qa+32+(i<<2)>>2]|0)>>>1;F=0-pa|0;qa=(c[qa+(i<<2)>>2]|0)+(f>>t<<1)+((R(pa,g>>O)|0)<<1)|0;ba=(i|0)==0;ra=c[(ba?na+288|0:na+292|0)>>2]|0;k=ia+2|0;j=da+2|0;la=ja+2|0;ma=ka+2|0;if(!(c[na+31288>>2]|0))y=0;else y=(s|0)>(c[q+(o+-1+(R(p+(v>>m)&n,r)|0)<<2)>>2]|0);x=y&1;z=c[na+31292>>2]|0;Y=c[na+31300>>2]|0;D=c[na+31296>>2]|0;if(!(c[na+31304>>2]|0))B=0;else B=(s|0)>(c[q+((R(r,p+-1|0)|0)+(n&o+(w>>m))<<2)>>2]|0);d=B&1;H=(v<<1)+g|0;M=oa+13124|0;E=c[M>>2]|0;N=v+g|0;H=((H|0)>(E|0)?E:H)-N>>O;E=(w<<1)+f|0;I=c[oa+13120>>2]|0;A=w+f|0;E=((E|0)>(I|0)?I:E)-A>>t;I=u+20|0;if((a[I>>0]|0)==1){t=c[oa+13084>>2]|0;q=v>>t;r=w>>t;s=(1<>2]|0)-(N>>t)|0;o=(q|0)>(o|0)?o:q;if((o|0)>0){m=0;n=0;do{m=m|1;n=n+2|0}while((n|0)<(o|0));x=m}else x=0}if((z|0)==1&p){o=(c[oa+13160>>2]|0)-(g>>t)|0;o=(q|0)>(o|0)?o:q;if((o|0)>0){m=0;n=0;do{m=m|1;n=n+2|0}while((n|0)<(o|0));p=m}else p=0}else p=z;if((D|0)==1&s){n=(c[oa+13156>>2]|0)-(f>>t)|0;n=(r|0)>(n|0)?n:r;if((n|0)>0){m=0;o=0;do{m=m|1;o=o+2|0}while((o|0)<(n|0));o=m}else o=0}else o=D;if(B&s){m=(c[oa+13156>>2]|0)-(A>>t)|0;m=(r|0)>(m|0)?m:r;if((m|0)>0){d=0;n=0;do{d=d|1;n=n+2|0}while((n|0)<(m|0))}else d=0}m=k;n=m+128|0;do{b[m>>1]=32896;m=m+2|0}while((m|0)<(n|0));m=j;n=m+128|0;do{b[m>>1]=32896;m=m+2|0}while((m|0)<(n|0));b[da>>1]=128;z=p;D=o;s=d}else s=d;t=(Y|0)!=0;if(t){B=b[qa+(~pa<<1)>>1]|0;b[ia>>1]=B;b[da>>1]=B}u=(D|0)!=0;if(u)Pf(j|0,qa+(F<<1)|0,ta<<1|0)|0;v=(s|0)!=0;if(v?(G=j+(ta<<1)|0,Pf(G|0,qa+(F<<1)+(ta<<1)|0,ta<<1|0)|0,J=Of(e[qa+(ta+-1-pa+E<<1)>>1]|0,0,65537,65537)|0,K=C,L=ta-E|0,(L|0)>0):0){m=G+(E<<1)|0;d=0;do{G=m+(d<<1)|0;F=G;b[F>>1]=J;b[F+2>>1]=J>>>16;G=G+4|0;b[G>>1]=K;b[G+2>>1]=K>>>16;d=d+4|0}while((d|0)<(L|0))}r=(z|0)!=0;if(r&(h|0)!=31){d=0;do{b[k+(d<<1)>>1]=b[qa+((R(d,pa)|0)+-1<<1)>>1]|0;d=d+1|0}while((d|0)<(ta|0))}q=(x|0)!=0;if(q){m=H+ta|0;if((H|0)>0){d=ta;do{b[k+(d<<1)>>1]=b[qa+((R(d,pa)|0)+-1<<1)>>1]|0;d=d+1|0}while((d|0)<(m|0))}n=Of(e[qa+((R(m+-1|0,pa)|0)+-1<<1)>>1]|0,0,65537,65537)|0;o=C;p=ta-H|0;if((p|0)>0){m=k+(ta<<1)+(H<<1)|0;d=0;do{L=m+(d<<1)|0;K=L;b[K>>1]=n;b[K+2>>1]=n>>>16;L=L+4|0;b[L>>1]=o;b[L+2>>1]=o>>>16;d=d+4|0}while((d|0)<(p|0))}}if((a[I>>0]|0)==1?(P=x|z|Y,D|s|P|0):0){L=ta<<1;d=c[M>>2]|0;n=d-g>>O;n=q?(((L<>1]|0;if(!P)b[ia>>1]=d;b[ia>>1]=d;if(!r?(Q=Of(d&65535|0,0,65537,65537)|0,S=C,(h|0)!=31):0){d=0;do{P=k+(d<<1)|0;O=P;b[O>>1]=Q;b[O+2>>1]=Q>>>16;P=P+4|0;b[P>>1]=S;b[P+2>>1]=S>>>16;d=d+4|0}while((d|0)<(ta|0))}if(!q?(T=Of(e[k+(ta+-1<<1)>>1]|0,0,65537,65537)|0,U=C,(h|0)!=31):0){m=k+(ta<<1)|0;d=0;do{S=m+(d<<1)|0;Q=S;b[Q>>1]=T;b[Q+2>>1]=T>>>16;S=S+4|0;b[S>>1]=U;b[S+2>>1]=U>>>16;d=d+4|0}while((d|0)<(ta|0))}if(((g|0)==0|(f|0)==0)&(f|0)==0&(n|0)>0)Kf(k|0,0,((n+2147483647|0)>>>2<<3)+8|0)|0;b[da>>1]=b[ia>>1]|0}a:do if(!q){if(r){m=Of(e[k+(ta+-1<<1)>>1]|0,0,65537,65537)|0;n=C;if((h|0)==31){V=73;break}o=k+(ta<<1)|0;d=0;while(1){V=o+(d<<1)|0;U=V;b[U>>1]=m;b[U+2>>1]=m>>>16;V=V+4|0;b[V>>1]=n;b[V+2>>1]=n>>>16;d=d+4|0;if((d|0)>=(ta|0)){V=70;break a}}}if(t){m=Of(e[ia>>1]|0,0,65537,65537)|0;n=C;o=ta<<1;if((h|0)==31){V=75;break}else d=0;while(1){X=k+(d<<1)|0;W=X;b[W>>1]=m;b[W+2>>1]=m>>>16;X=X+4|0;b[X>>1]=n;b[X+2>>1]=n>>>16;d=d+4|0;if((d|0)>=(o|0)){V=73;break a}}}if(u){m=b[j>>1]|0;b[ia>>1]=m;m=Of(m&65535|0,0,65537,65537)|0;n=C;o=ta<<1;if((h|0)==31){V=78;break}else d=0;while(1){Y=k+(d<<1)|0;X=Y;b[X>>1]=m;b[X+2>>1]=m>>>16;Y=Y+4|0;b[Y>>1]=n;b[Y+2>>1]=n>>>16;d=d+4|0;if((d|0)>=(o|0)){V=75;break a}}}if(!v){m=1<>1]=m;n=Of(m&65535|0,0,65537,65537)|0;o=C;q=ta<<1;p=(h|0)==31;if(p){V=74;break}else d=0;do{V=j+(d<<1)|0;U=V;b[U>>1]=n;b[U+2>>1]=n>>>16;V=V+4|0;b[V>>1]=o;b[V+2>>1]=o>>>16;d=d+4|0}while((d|0)<(q|0));m=Of(m&65535|0,0,65537,65537)|0;n=C;if(p){V=70;break}else d=0;while(1){V=k+(d<<1)|0;U=V;b[U>>1]=m;b[U+2>>1]=m>>>16;V=V+4|0;b[V>>1]=n;b[V+2>>1]=n>>>16;d=d+4|0;if((d|0)>=(q|0)){V=70;break a}}}m=j+(ta<<1)|0;d=b[m>>1]|0;n=Of(d&65535|0,0,65537,65537)|0;o=C;p=(h|0)==31;if(p){b[ia>>1]=d;break}else d=0;do{_=j+(d<<1)|0;Z=_;b[Z>>1]=n;b[Z+2>>1]=n>>>16;_=_+4|0;b[_>>1]=o;b[_+2>>1]=o>>>16;d=d+4|0}while((d|0)<(ta|0));m=b[m>>1]|0;b[ia>>1]=m;m=Of(m&65535|0,0,65537,65537)|0;n=C;o=ta<<1;if(p)V=78;else{d=0;do{_=k+(d<<1)|0;Z=_;b[Z>>1]=m;b[Z+2>>1]=m>>>16;_=_+4|0;b[_>>1]=n;b[_+2>>1]=n>>>16;d=d+4|0}while((d|0)<(o|0));V=78}}else V=70;while(0);if((V|0)==70)if((z|0)==0?(W=Of(e[k+(ta<<1)>>1]|0,0,65537,65537)|0,X=C,(h|0)!=31):0){d=0;do{V=k+(d<<1)|0;U=V;b[U>>1]=W;b[U+2>>1]=W>>>16;V=V+4|0;b[V>>1]=X;b[V+2>>1]=X>>>16;d=d+4|0}while((d|0)<(ta|0));V=73}else V=73;if((V|0)==73)if(!Y)V=74;else V=75;if((V|0)==74){b[ia>>1]=b[k>>1]|0;V=75}if((V|0)==75)if((D|0)==0?(Z=Of(e[ia>>1]|0,0,65537,65537)|0,_=C,(h|0)!=31):0){d=0;do{Y=j+(d<<1)|0;X=Y;b[X>>1]=Z;b[X+2>>1]=Z>>>16;Y=Y+4|0;b[Y>>1]=_;b[Y+2>>1]=_>>>16;d=d+4|0}while((d|0)<(ta|0));V=78}else V=78;if(((V|0)==78?!v:0)?($=Of(e[j+(ta+-1<<1)>>1]|0,0,65537,65537)|0,aa=C,(h|0)!=31):0){m=j+(ta<<1)|0;d=0;do{_=m+(d<<1)|0;Z=_;b[Z>>1]=$;b[Z+2>>1]=$>>>16;_=_+4|0;b[_>>1]=aa;b[_+2>>1]=aa>>>16;d=d+4|0}while((d|0)<(ta|0))}s=b[ia>>1]|0;b[da>>1]=s;b:do if(!(c[oa+13112>>2]|0)){if(!ba?(c[oa+4>>2]|0)!=3:0)break;if((h|0)!=2&(ra|0)!=1?(aa=ra+-26|0,aa=(aa|0)>-1?aa:26-ra|0,$=ra+-10|0,$=($|0)>-1?$:10-ra|0,(((aa|0)>($|0)?$:aa)|0)>(c[164+(h+-3<<2)>>2]|0)):0){d=1<>0]|0)!=0)?(ea=s&65535,ca=b[da+128>>1]|0,fa=ca&65535,da=fa+ea-(e[da+64>>1]<<1)|0,(((da|0)>-1?da:0-da|0)|0)<(d|0)):0)?(ha=ia+128|0,ga=b[ha>>1]|0,da=(ga&65535)+ea-(e[ia+64>>1]<<1)|0,(((da|0)>-1?da:0-da|0)|0)<(d|0)):0){b[ka>>1]=s;b[ka+128>>1]=ca;d=0;do{la=d;d=d+1|0;b[ma+(la<<1)>>1]=((R(d,fa)|0)+32+(R(63-la|0,ea)|0)|0)>>>6}while((d|0)!=63);b[k>>1]=(((s&65535)*63|0)+32+(ga&65535)|0)>>>6;d=1;while(1){la=d;d=d+1|0;b[k+(la<<1)>>1]=((R(e[ia>>1]|0,63-la|0)|0)+32+(R(e[ha>>1]|0,d)|0)|0)>>>6;if((d|0)==63){j=ma;break b}}}r=ta<<1;q=r+-1|0;d=b[k+(q<<1)>>1]|0;b[la+(q<<1)>>1]=d;m=b[j+(q<<1)>>1]|0;b[ma+(q<<1)>>1]=m;r=r+-2|0;q=(r|0)>-1;if(q){p=r;n=b[k+(r<<1)>>1]|0;while(1){ia=p;p=p+-1|0;o=b[k+(p<<1)>>1]|0;b[la+(ia<<1)>>1]=((d&65535)+2+((n&65535)<<1)+(o&65535)|0)>>>2;if((ia|0)<=0)break;else{d=n;n=o}}}ia=((e[k>>1]|0)+2+((s&65535)<<1)+(e[j>>1]|0)|0)>>>2&65535;b[ja>>1]=ia;b[ka>>1]=ia;if(q){n=r;d=b[j+(r<<1)>>1]|0;while(1){ka=n;n=n+-1|0;k=b[j+(n<<1)>>1]|0;b[ma+(ka<<1)>>1]=((m&65535)+2+((d&65535)<<1)+(k&65535)|0)>>>2;if((ka|0)<=0){k=la;j=ma;break}else{m=d;d=k}}}else{k=la;j=ma}}}while(0);switch(ra|0){case 0:{vc(qa,j,k,pa,h);break}case 1:{wc(qa,j,k,pa,h,i);break}default:{if(!(c[oa+13104>>2]|0))d=0;else d=(a[na+31256>>0]|0)!=0;xc(qa,j,k,pa,i,ra,ta,d&1,sa)}}l=ua;return}function vc(a,c,d,f,g){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;m=1<>1]|0,n-h|0)|0;q=h;h=h+1|0;s=R(e[o>>1]|0,h)|0;r=R(e[c+(q<<1)>>1]|0,k)|0;b[a+(q+l<<1)>>1]=t+m+s+r+(R(e[p>>1]|0,g)|0)>>i}while((h|0)<(m|0))}while((g|0)<(m|0))}return}function wc(c,d,f,g,h,i){c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;p=1<>1]|0)+j+(e[d+(k<<1)>>1]|0)|0;k=k+1|0}while((k|0)<(p|0));h=j>>h+1;m=Of(h|0,((h|0)<0)<<31>>31|0,65537,65537)|0;n=C;if(!l){k=0;do{l=R(k,g)|0;j=0;do{q=c+(j+l<<1)|0;r=q;a[r>>0]=m;a[r+1>>0]=m>>8;a[r+2>>0]=m>>16;a[r+3>>0]=m>>24;q=q+4|0;a[q>>0]=n;a[q+1>>0]=n>>8;a[q+2>>0]=n>>16;a[q+3>>0]=n>>24;j=j+4|0}while((j|0)<(p|0));k=k+1|0}while((k|0)<(p|0))}}else h=p>>h+1;if((i|0)==0&(p|0)<32?(b[c>>1]=((h<<1)+2+(e[f>>1]|0)+(e[d>>1]|0)|0)>>>2,o=(p|0)>1,o):0){k=(h*3|0)+2|0;j=1;do{b[c+(j<<1)>>1]=(k+(e[d+(j<<1)>>1]|0)|0)>>>2;j=j+1|0}while((j|0)!=(p|0));if(o){k=(h*3|0)+2|0;j=1;do{b[c+((R(j,g)|0)<<1)>>1]=(k+(e[f+(j<<1)>>1]|0)|0)>>>2;j=j+1|0}while((j|0)!=(p|0))}}return}function xc(c,f,g,h,i,j,k,m,n){c=c|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;x=l;l=l+208|0;w=a[1673+(j+-2)>>0]|0;s=x+(k<<1)|0;o=(R(w,k)|0)>>5;q=j+-11|0;r=q>>>0<15&(o|0)<-1;if((j|0)>17){p=f+-2|0;if(r){if((k|0)>=0)Pf(s|0,p|0,(k>>>2<<3)+8|0)|0;p=b[296+(q<<1)>>1]|0;while(1){b[s+(o<<1)>>1]=b[g+(((R(p,o)|0)+128>>8)+-1<<1)>>1]|0;if((o|0)<-1)o=o+1|0;else{p=s;break}}}v=(k|0)>0;if(v){u=0;do{o=u;u=u+1|0;s=R(u,w)|0;r=s>>5;s=s&31;if(!s){r=r+1|0;q=R(o,h)|0;o=0;do{s=p+(r+o<<1)|0;z=s;z=d[z>>0]|d[z+1>>0]<<8|d[z+2>>0]<<16|d[z+3>>0]<<24;s=s+4|0;s=d[s>>0]|d[s+1>>0]<<8|d[s+2>>0]<<16|d[s+3>>0]<<24;t=c+(o+q<<1)|0;y=t;a[y>>0]=z;a[y+1>>0]=z>>8;a[y+2>>0]=z>>16;a[y+3>>0]=z>>24;t=t+4|0;a[t>>0]=s;a[t+1>>0]=s>>8;a[t+2>>0]=s>>16;a[t+3>>0]=s>>24;o=o+4|0}while((o|0)<(k|0))}else{t=32-s|0;q=R(o,h)|0;o=0;do{z=o+r|0;y=R(e[p+(z+1<<1)>>1]|0,t)|0;b[c+(o+q<<1)>>1]=(y+16+(R(e[p+(z+2<<1)>>1]|0,s)|0)|0)>>>5;z=o|1;y=z+r|0;A=R(e[p+(y+1<<1)>>1]|0,t)|0;b[c+(z+q<<1)>>1]=(A+16+(R(e[p+(y+2<<1)>>1]|0,s)|0)|0)>>>5;z=o|2;y=z+r|0;A=R(e[p+(y+1<<1)>>1]|0,t)|0;b[c+(z+q<<1)>>1]=(A+16+(R(e[p+(y+2<<1)>>1]|0,s)|0)|0)>>>5;z=o|3;y=z+r|0;A=R(e[p+(y+1<<1)>>1]|0,t)|0;b[c+(z+q<<1)>>1]=(A+16+(R(e[p+(y+2<<1)>>1]|0,s)|0)|0)>>>5;o=o+4|0}while((o|0)<(k|0))}}while((u|0)!=(k|0))}if((i|0)==0&(j|0)==26&(k|0)<32&(m|0)==0&v){r=g+-2|0;q=1<>1]|0)-(e[r>>1]|0)>>1)+(e[f>>1]|0)|0;b[c+((R(o,h)|0)<<1)>>1]=(A&p|0)==0?A:0-A>>31&q;o=o+1|0}while((o|0)!=(k|0))}}else{p=g+-2|0;if(r){if((k|0)>=0)Pf(s|0,p|0,(k>>>2<<3)+8|0)|0;p=b[296+(q<<1)>>1]|0;while(1){b[s+(o<<1)>>1]=b[f+(((R(p,o)|0)+128>>8)+-1<<1)>>1]|0;if((o|0)<-1)o=o+1|0;else{p=s;break}}}v=(k|0)>0;if(v){t=0;do{u=t;t=t+1|0;r=R(t,w)|0;q=r>>5;r=r&31;if(!r){q=q+1|0;o=0;do{b[c+((R(o,h)|0)+u<<1)>>1]=b[p+(q+o<<1)>>1]|0;o=o+1|0}while((o|0)!=(k|0))}else{s=32-r|0;o=0;do{A=o+q|0;z=R(e[p+(A+1<<1)>>1]|0,s)|0;b[c+((R(o,h)|0)+u<<1)>>1]=(z+16+(R(e[p+(A+2<<1)>>1]|0,r)|0)|0)>>>5;o=o+1|0}while((o|0)!=(k|0))}}while((t|0)!=(k|0))}if((i|0)==0&(j|0)==10&(k|0)<32&(m|0)==0&v){r=f+-2|0;q=1<>1]|0)-(e[r>>1]|0)>>1)+(e[g>>1]|0)|0;b[c+(o<<1)>>1]=(A&p|0)==0?A:0-A>>31&q;A=o|1;z=((e[f+(A<<1)>>1]|0)-(e[r>>1]|0)>>1)+(e[g>>1]|0)|0;b[c+(A<<1)>>1]=(z&p|0)==0?z:0-z>>31&q;A=o|2;z=((e[f+(A<<1)>>1]|0)-(e[r>>1]|0)>>1)+(e[g>>1]|0)|0;b[c+(A<<1)>>1]=(z&p|0)==0?z:0-z>>31&q;A=o|3;z=((e[f+(A<<1)>>1]|0)-(e[r>>1]|0)>>1)+(e[g>>1]|0)|0;b[c+(A<<1)>>1]=(z&p|0)==0?z:0-z>>31&q;o=o+4|0}while((o|0)<(k|0))}}l=x;return}function yc(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0;g=c[e>>2]|0;if((g|0?c[g+304>>2]|0:0)?(h=e+46|0,g=(d[h>>0]|0)&(f^255)&255,a[h>>0]=g,g<<24>>24==0):0){Id(c[b+4>>2]|0,e+4|0);c[e+24>>2]=0}return}function zc(a){a=a|0;yc(a,a+2524|0,6);return}function Ac(a){a=a|0;yc(a,a+2524|0,-1);return}function Bc(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0;h=d+4364|0;if(((c[(c[d+2524>>2]|0)+304>>2]|0)!=0?(b[d+2568>>1]|0)==(b[h>>1]|0):0)?(c[d+2544>>2]|0)==(f|0):0)d=-1094995529;else{g=Cc(d)|0;if(!g)d=-12;else{c[e>>2]=c[g>>2];c[d+2520>>2]=g;a[g+46>>0]=a[d+1450>>0]|0?3:2;c[g+20>>2]=f;b[g+44>>1]=b[h>>1]|0;h=g+28|0;d=(c[d+200>>2]|0)+20|0;c[h>>2]=c[d>>2];c[h+4>>2]=c[d+4>>2];c[h+8>>2]=c[d+8>>2];c[h+12>>2]=c[d+12>>2];d=0}}return d|0}function Cc(a){a=a|0;var b=0,d=0;b=a+2524|0;if((c[(c[b>>2]|0)+304>>2]|0)==0?(Hd(c[a+4>>2]|0,a+2528|0,1)|0)>=0:0){d=c[a+200>>2]|0;c[a+2540>>2]=R(c[d+13132>>2]|0,c[d+13128>>2]|0)|0;d=c[a+4520>>2]|0;a=c[b>>2]|0;c[a+244>>2]=(d|0)==1&1;c[a+240>>2]=(d+-1|0)>>>0<2&1}else b=0;return b|0}function Dc(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;q=d+2046|0;s=d+4366|0;l=(f|0)==0;m=d+4364|0;n=d+200|0;o=d+2572|0;p=d+2524|0;h=d+2570|0;i=d+2544|0;j=d+2568|0;k=d+2568|0;g=d+2570|0;while(1){if((a[q>>0]|0)==1)if(((a[h>>0]&8)==0?(c[i>>2]|0)!=(c[o>>2]|0):0)?(b[j>>1]|0)==(b[s>>1]|0):0){yc(d,p,1);f=h}else f=h;else f=g;if(!(a[f>>0]&1))f=0;else f=(b[k>>1]|0)==(b[s>>1]|0)&1;if(((l?(b[s>>1]|0)==(b[m>>1]|0):0)?(r=c[n>>2]|0,r|0):0)?(f|0)<=(c[r+76+(((c[r+72>>2]|0)+-1|0)*12|0)+4>>2]|0):0){f=0;break}if(f|0){t=14;break}f=b[s>>1]|0;if(f<<16>>16==(b[m>>1]|0)){f=0;break}b[s>>1]=(f&65535)+1&255}if((t|0)==14){g=d+2524|0;f=ze(e,c[g>>2]|0)|0;if(!(a[d+2570>>0]&8))yc(d,g,1);else yc(d,g,9);f=(f|0)<0?f:1}return f|0}function Ec(){var b=0,c=0,d=0,e=0,f=0;if(!(a[3717]|0)){c=0;do{b=0;do{f=(R(b<<1|1,c)|0)&127;d=f>>>0>63;f=d?f+-64|0:f;d=d?-1:1;e=(f|0)>31;a[3717+(c<<5)+b>>0]=R(a[1706+(e?64-f|0:f)>>0]|0,e?0-d|0:d)|0;b=b+1|0}while((b|0)!=32);c=c+1|0}while((c|0)!=32)}return}function Fc(a,b){a=a|0;b=b|0;c[a>>2]=4;c[a+4>>2]=1;c[a+8>>2]=2;c[a+12>>2]=3;c[a+16>>2]=4;c[a+20>>2]=1;c[a+24>>2]=2;c[a+28>>2]=1;c[a+32>>2]=3;c[a+36>>2]=4;c[a+40>>2]=5;c[a+44>>2]=6;c[a+48>>2]=2;c[a+52>>2]=3;c[a+56>>2]=4;c[a+60>>2]=5;c[a+64>>2]=1;c[a+68>>2]=1;c[a+72>>2]=2;c[a+1676>>2]=5;c[a+1680>>2]=6;c[a+1684>>2]=1;c[a+1688>>2]=2;c[a+1692>>2]=5;c[a+1696>>2]=6;c[a+1700>>2]=1;c[a+1704>>2]=2;return}function Gc(a,c,d,e,f,g,h){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0;k=c>>>1;if((e|0)>0){l=(d|0)>0;j=h-g|0;i=0;h=a;while(1){if(l){c=0;do{b[h+(c<<1)>>1]=(Pd(f,g)|0)<>>1;j=1<>1]|0)+(e[a>>1]|0)|0;b[a>>1]=(l&i|0)==0?l:0-l>>31&j;d=d+1|0;if((d|0)==4)break;else c=c+2|0}h=h+1|0;if((h|0)==4)break;else{g=g+8|0;f=f+(k<<1)|0}}return}function Ic(a,c,d,f){a=a|0;c=c|0;d=d|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;k=d>>>1;j=1<>1]|0)+(e[a>>1]|0)|0;b[a>>1]=(l&i|0)==0?l:0-l>>31&j;d=d+1|0;if((d|0)==8)break;else c=c+2|0}h=h+1|0;if((h|0)==8)break;else{g=g+16|0;f=f+(k<<1)|0}}return}function Jc(a,c,d,f){a=a|0;c=c|0;d=d|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;k=d>>>1;j=1<>1]|0)+(e[a>>1]|0)|0;b[a>>1]=(l&i|0)==0?l:0-l>>31&j;d=d+1|0;if((d|0)==16)break;else c=c+2|0}h=h+1|0;if((h|0)==16)break;else{g=g+32|0;f=f+(k<<1)|0}}return}function Kc(a,c,d,f){a=a|0;c=c|0;d=d|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;k=d>>>1;j=1<>1]|0)+(e[a>>1]|0)|0;b[a>>1]=(l&i|0)==0?l:0-l>>31&j;d=d+1|0;if((d|0)==32)break;else c=c+2|0}h=h+1|0;if((h|0)==32)break;else{g=g+64|0;f=f+(k<<1)|0}}return}function Lc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;h=c<<16>>16;g=15-d-h|0;h=1<0){f=1<>16!=31){d=a;c=0;do{e=0;do{b[d>>1]=(b[d>>1]|0)+f>>g;d=d+2|0;e=e+1|0}while((e|0)<(h|0));c=c+1|0}while((c|0)<(h|0))}}else if(c<<16>>16!=31){f=0-g|0;e=0;d=a;do{c=0;do{b[d>>1]=b[d>>1]<>16);if(!d){if(c<<16>>16!=31){h=(i|0)>1;g=0;d=a;while(1){if(h){c=1;f=b[d>>1]|0;do{a=d+(c<<1)|0;f=(e[a>>1]|0)+(f&65535)&65535;b[a>>1]=f;c=c+1|0}while((c|0)!=(i|0))}g=g+1|0;if((g|0)>=(i|0))break;else d=d+(i<<1)|0}}}else{g=i+-1|0;if((i|0)>1){f=0;d=a;do{d=d+(i<<1)|0;c=0;do{a=d+(c<<1)|0;b[a>>1]=(e[a>>1]|0)+(e[d+(c-i<<1)>>1]|0);c=c+1|0}while((c|0)!=(i|0));f=f+1|0}while((f|0)!=(g|0))}}return}function Nc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=0;e=a;while(1){o=b[e>>1]|0;m=e+16|0;k=b[m>>1]|0;i=k+o|0;f=e+24|0;n=b[f>>1]|0;l=n+k|0;g=o-n|0;j=e+8|0;h=(b[j>>1]|0)*74|0;n=((o-k+n|0)*74|0)+64|0;k=n>>7;b[m>>1]=(k+32768|0)>>>0>65535?n>>31^32767:k;m=(i*29|0)+64+(l*55|0)+h|0;k=m>>7;b[e>>1]=(k+32768|0)>>>0>65535?m>>31^32767:k;l=(R(l,-29)|0)+64+(g*55|0)+h|0;k=l>>7;b[j>>1]=(k+32768|0)>>>0>65535?l>>31^32767:k;h=(i*55|0)+64+(g*29|0)-h|0;g=h>>7;b[f>>1]=(g+32768|0)>>>0>65535?h>>31^32767:g;d=d+1|0;if((d|0)==4)break;else e=e+2|0}e=20-c|0;c=1<>1]|0;i=a+4|0;g=b[i>>1]|0;l=g+f|0;o=a+6|0;h=b[o>>1]|0;j=h+g|0;m=f-h|0;k=a+2|0;n=(b[k>>1]|0)*74|0;h=((f-g+h|0)*74|0)+c>>e;b[i>>1]=(h+32768|0)>>>0>65535?h>>31^32767:h;i=(l*29|0)+c+(j*55|0)+n>>e;b[a>>1]=(i+32768|0)>>>0>65535?i>>31^32767:i;j=(R(j,-29)|0)+c+(m*55|0)+n>>e;b[k>>1]=(j+32768|0)>>>0>65535?j>>31^32767:j;n=(l*55|0)+c+(m*29|0)-n>>e;b[o>>1]=(n+32768|0)>>>0>65535?n>>31^32767:n;d=d+1|0;if((d|0)==4)break;else a=a+8|0}return}function Oc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c=0;e=a;while(1){l=b[e>>1]<<6;i=e+16|0;j=b[i>>1]<<6;g=j+l|0;j=l-j|0;l=e+8|0;k=b[l>>1]|0;f=e+24|0;m=b[f>>1]|0;h=(m*36|0)+(k*83|0)|0;k=(R(m,-83)|0)+(k*36|0)|0;m=g+64+h|0;n=m>>7;b[e>>1]=(n+32768|0)>>>0>65535?m>>31^32767:n;n=j+64+k|0;m=n>>7;b[l>>1]=(m+32768|0)>>>0>65535?n>>31^32767:m;k=j-k+64|0;j=k>>7;b[i>>1]=(j+32768|0)>>>0>65535?k>>31^32767:j;h=g-h+64|0;g=h>>7;b[f>>1]=(g+32768|0)>>>0>65535?h>>31^32767:g;c=c+1|0;if((c|0)==4)break;else e=e+2|0}d=20-d|0;f=1<>1]<<6;k=c+4|0;i=b[k>>1]<<6;h=c+2|0;j=b[h>>1]|0;n=c+6|0;l=b[n>>1]|0;m=(l*36|0)+(j*83|0)|0;j=(R(l,-83)|0)+(j*36|0)|0;l=i+g+f|0;a=l+m>>d;b[c>>1]=(a+32768|0)>>>0>65535?a>>31^32767:a;i=g-i+f|0;g=i+j>>d;b[h>>1]=(g+32768|0)>>>0>65535?g>>31^32767:g;j=i-j>>d;b[k>>1]=(j+32768|0)>>>0>65535?j>>31^32767:j;m=l-m>>d;b[n>>1]=(m+32768|0)>>>0>65535?m>>31^32767:m;e=e+1|0;if((e|0)==4)break;else c=c+8|0}return}function Pc(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+32|0;t=v+16|0;u=v;r=(e|0)<8;o=e+4|0;s=t+4|0;p=t+8|0;q=t+12|0;m=0;n=d;o=(o|0)<8?o:8;while(1){c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;i=(o|0)>1;g=0;do{if(i){j=u+(g<<2)|0;h=1;k=c[j>>2]|0;do{k=(R(b[n+(h<<3<<1)>>1]|0,a[3717+(h<<2<<5)+g>>0]|0)|0)+k|0;h=h+2|0}while((h|0)<(o|0));c[j>>2]=k}g=g+1|0}while((g|0)!=4);j=b[n>>1]<<6;i=b[n+64>>1]<<6;k=i+j|0;i=j-i|0;j=b[n+32>>1]|0;g=b[n+96>>1]|0;h=(g*36|0)+(j*83|0)|0;j=(R(g,-83)|0)+(j*36|0)|0;g=h+k|0;c[t>>2]=g;c[s>>2]=j+i;c[p>>2]=i-j;c[q>>2]=k-h;h=0;while(1){k=c[u+(h<<2)>>2]|0;i=g+64+k|0;j=i>>7;b[n+(h<<3<<1)>>1]=(j+32768|0)>>>0>65535?i>>31^32767:j;k=g-k+64|0;g=k>>7;b[n+(7-h<<3<<1)>>1]=(g+32768|0)>>>0>65535?k>>31^32767:g;g=h+1|0;if((g|0)==4)break;h=g;g=c[t+(g<<2)>>2]|0}o=(o|0)<8&((m|0)!=0&(m&3|0)==0)?o+-4|0:o;m=m+1|0;if((m|0)==8)break;else n=n+2|0}s=r?e:8;n=20-f|0;o=1<1;p=t+4|0;q=t+8|0;r=t+12|0;k=d;m=0;while(1){c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;h=0;do{if(e){j=u+(h<<2)|0;g=1;i=c[j>>2]|0;do{i=(R(b[k+(g<<1)>>1]|0,a[3717+(g<<2<<5)+h>>0]|0)|0)+i|0;g=g+2|0}while((g|0)<(s|0));c[j>>2]=i}h=h+1|0}while((h|0)!=4);f=b[k>>1]<<6;j=b[k+8>>1]<<6;d=j+f|0;j=f-j|0;f=b[k+4>>1]|0;g=b[k+12>>1]|0;h=(g*36|0)+(f*83|0)|0;f=(R(g,-83)|0)+(f*36|0)|0;g=h+d|0;c[t>>2]=g;c[p>>2]=f+j;c[q>>2]=j-f;c[r>>2]=d-h;h=0;while(1){d=c[u+(h<<2)>>2]|0;g=g+o|0;f=g+d>>n;b[k+(h<<1)>>1]=(f+32768|0)>>>0>65535?f>>31^32767:f;g=g-d>>n;b[k+(7-h<<1)>>1]=(g+32768|0)>>>0>65535?g>>31^32767:g;g=h+1|0;if((g|0)==4)break;h=g;g=c[t+(g<<2)>>2]|0}m=m+1|0;if((m|0)==8)break;else k=k+16|0}l=v;return}function Qc(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=l;l=l+96|0;u=y+64|0;v=y+32|0;w=y+16|0;x=y;t=(e|0)<16;o=e+4|0;p=w+4|0;q=w+8|0;r=w+12|0;s=u+28|0;m=0;n=d;o=(o|0)<16?o:16;while(1){c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;c[v+16>>2]=0;c[v+20>>2]=0;c[v+24>>2]=0;c[v+28>>2]=0;i=(o|0)>1;g=0;do{if(i){j=v+(g<<2)|0;h=1;k=c[j>>2]|0;do{k=(R(b[n+(h<<4<<1)>>1]|0,a[3717+(h<<1<<5)+g>>0]|0)|0)+k|0;h=h+2|0}while((h|0)<(o|0));c[j>>2]=k}g=g+1|0}while((g|0)!=8);c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[x+12>>2]=0;h=0;do{i=x+(h<<2)|0;g=1;j=c[i>>2]|0;do{j=(R(b[n+(g<<5<<1)>>1]|0,a[3717+(g<<2<<5)+h>>0]|0)|0)+j|0;g=g+2|0}while((g|0)<8);c[i>>2]=j;h=h+1|0}while((h|0)!=4);i=b[n>>1]<<6;h=b[n+256>>1]<<6;j=h+i|0;h=i-h|0;i=b[n+128>>1]|0;k=b[n+384>>1]|0;g=(k*36|0)+(i*83|0)|0;i=(R(k,-83)|0)+(i*36|0)|0;k=g+j|0;c[w>>2]=k;c[p>>2]=i+h;c[q>>2]=h-i;c[r>>2]=j-g;g=c[x>>2]|0;c[u>>2]=g+k;c[s>>2]=k-g;g=1;do{j=c[w+(g<<2)>>2]|0;k=c[x+(g<<2)>>2]|0;c[u+(g<<2)>>2]=k+j;c[u+(7-g<<2)>>2]=j-k;g=g+1|0}while((g|0)!=4);g=0;do{k=c[u+(g<<2)>>2]|0;j=c[v+(g<<2)>>2]|0;h=k+64+j|0;i=h>>7;b[n+(g<<4<<1)>>1]=(i+32768|0)>>>0>65535?h>>31^32767:i;j=k-j+64|0;k=j>>7;b[n+(15-g<<4<<1)>>1]=(k+32768|0)>>>0>65535?j>>31^32767:k;g=g+1|0}while((g|0)!=8);o=(o|0)<16&((m|0)!=0&(m&3|0)==0)?o+-4|0:o;m=m+1|0;if((m|0)==16)break;else n=n+2|0}t=t?e:16;n=20-f|0;o=1<1;p=w+4|0;q=w+8|0;r=w+12|0;s=u+28|0;k=d;m=0;while(1){c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;c[v+16>>2]=0;c[v+20>>2]=0;c[v+24>>2]=0;c[v+28>>2]=0;h=0;do{if(e){i=v+(h<<2)|0;g=1;j=c[i>>2]|0;do{j=(R(b[k+(g<<1)>>1]|0,a[3717+(g<<1<<5)+h>>0]|0)|0)+j|0;g=g+2|0}while((g|0)<(t|0));c[i>>2]=j}h=h+1|0}while((h|0)!=8);c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[x+12>>2]=0;h=0;do{i=x+(h<<2)|0;g=1;j=c[i>>2]|0;do{j=(R(b[k+(g<<1<<1)>>1]|0,a[3717+(g<<2<<5)+h>>0]|0)|0)+j|0;g=g+2|0}while((g|0)<8);c[i>>2]=j;h=h+1|0}while((h|0)!=4);j=b[k>>1]<<6;i=b[k+16>>1]<<6;f=i+j|0;i=j-i|0;j=b[k+8>>1]|0;d=b[k+24>>1]|0;g=(d*36|0)+(j*83|0)|0;j=(R(d,-83)|0)+(j*36|0)|0;d=g+f|0;c[w>>2]=d;c[p>>2]=j+i;c[q>>2]=i-j;c[r>>2]=f-g;g=c[x>>2]|0;c[u>>2]=g+d;c[s>>2]=d-g;g=1;do{f=c[w+(g<<2)>>2]|0;d=c[x+(g<<2)>>2]|0;c[u+(g<<2)>>2]=d+f;c[u+(7-g<<2)>>2]=f-d;g=g+1|0}while((g|0)!=4);g=0;do{d=c[v+(g<<2)>>2]|0;f=(c[u+(g<<2)>>2]|0)+o|0;j=f+d>>n;b[k+(g<<1)>>1]=(j+32768|0)>>>0>65535?j>>31^32767:j;d=f-d>>n;b[k+(15-g<<1)>>1]=(d+32768|0)>>>0>65535?d>>31^32767:d;g=g+1|0}while((g|0)!=8);m=m+1|0;if((m|0)==16)break;else k=k+32|0}l=y;return}function Rc(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=l;l=l+224|0;w=C+160|0;x=C+96|0;y=C+64|0;z=C+32|0;A=C+16|0;B=C;u=(e|0)<32;p=e+4|0;q=A+4|0;r=A+8|0;s=A+12|0;t=y+28|0;n=0;o=d;p=(p|0)<32?p:32;while(1){g=x;h=g+64|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(h|0));i=(p|0)>1;g=0;do{if(i){j=x+(g<<2)|0;h=1;k=c[j>>2]|0;do{k=(R(b[o+(h<<5<<1)>>1]|0,a[3717+(h<<5)+g>>0]|0)|0)+k|0;h=h+2|0}while((h|0)<(p|0));c[j>>2]=k}g=g+1|0}while((g|0)!=16);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;c[z+12>>2]=0;c[z+16>>2]=0;c[z+20>>2]=0;c[z+24>>2]=0;c[z+28>>2]=0;i=(p|0)/2|0;j=(p|0)>3;h=0;do{if(j){k=z+(h<<2)|0;g=1;m=c[k>>2]|0;do{m=(R(b[o+(g<<6<<1)>>1]|0,a[3717+(g<<1<<5)+h>>0]|0)|0)+m|0;g=g+2|0}while((g|0)<(i|0));c[k>>2]=m}h=h+1|0}while((h|0)!=8);c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;c[B+12>>2]=0;h=0;do{i=B+(h<<2)|0;g=1;j=c[i>>2]|0;do{j=(R(b[o+(g<<7<<1)>>1]|0,a[3717+(g<<2<<5)+h>>0]|0)|0)+j|0;g=g+2|0}while((g|0)<8);c[i>>2]=j;h=h+1|0}while((h|0)!=4);k=b[o>>1]<<6;j=b[o+1024>>1]<<6;m=j+k|0;j=k-j|0;k=b[o+512>>1]|0;v=b[o+1536>>1]|0;g=(v*36|0)+(k*83|0)|0;k=(R(v,-83)|0)+(k*36|0)|0;v=g+m|0;c[A>>2]=v;c[q>>2]=k+j;c[r>>2]=j-k;c[s>>2]=m-g;g=c[B>>2]|0;c[y>>2]=g+v;c[t>>2]=v-g;g=1;do{m=c[A+(g<<2)>>2]|0;v=c[B+(g<<2)>>2]|0;c[y+(g<<2)>>2]=v+m;c[y+(7-g<<2)>>2]=m-v;g=g+1|0}while((g|0)!=4);g=0;do{m=c[y+(g<<2)>>2]|0;v=c[z+(g<<2)>>2]|0;c[w+(g<<2)>>2]=v+m;c[w+(15-g<<2)>>2]=m-v;g=g+1|0}while((g|0)!=8);g=0;do{v=c[w+(g<<2)>>2]|0;m=c[x+(g<<2)>>2]|0;j=v+64+m|0;k=j>>7;b[o+(g<<5<<1)>>1]=(k+32768|0)>>>0>65535?j>>31^32767:k;m=v-m+64|0;v=m>>7;b[o+(31-g<<5<<1)>>1]=(v+32768|0)>>>0>65535?m>>31^32767:v;g=g+1|0}while((g|0)!=16);p=(p|0)<32&((n|0)!=0&(n&3|0)==0)?p+-4|0:p;n=n+1|0;if((n|0)==32)break;else o=o+2|0}v=u?e:32;n=20-f|0;o=1<1;e=(v|0)/2|0;q=(v|0)>3;r=A+4|0;s=A+8|0;t=A+12|0;u=y+28|0;k=d;m=0;while(1){g=x;h=g+64|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(h|0));h=0;do{if(p){i=x+(h<<2)|0;g=1;j=c[i>>2]|0;do{j=(R(b[k+(g<<1)>>1]|0,a[3717+(g<<5)+h>>0]|0)|0)+j|0;g=g+2|0}while((g|0)<(v|0));c[i>>2]=j}h=h+1|0}while((h|0)!=16);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;c[z+12>>2]=0;c[z+16>>2]=0;c[z+20>>2]=0;c[z+24>>2]=0;c[z+28>>2]=0;h=0;do{if(q){i=z+(h<<2)|0;g=1;j=c[i>>2]|0;do{d=g<<1;j=(R(b[k+(d<<1)>>1]|0,a[3717+(d<<5)+h>>0]|0)|0)+j|0;g=g+2|0}while((g|0)<(e|0));c[i>>2]=j}h=h+1|0}while((h|0)!=8);c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;c[B+12>>2]=0;h=0;do{i=B+(h<<2)|0;g=1;j=c[i>>2]|0;do{d=g<<2;j=(R(b[k+(d<<1)>>1]|0,a[3717+(d<<5)+h>>0]|0)|0)+j|0;g=g+2|0}while((g|0)<8);c[i>>2]=j;h=h+1|0}while((h|0)!=4);j=b[k>>1]<<6;i=b[k+32>>1]<<6;f=i+j|0;i=j-i|0;j=b[k+16>>1]|0;d=b[k+48>>1]|0;g=(d*36|0)+(j*83|0)|0;j=(R(d,-83)|0)+(j*36|0)|0;d=g+f|0;c[A>>2]=d;c[r>>2]=j+i;c[s>>2]=i-j;c[t>>2]=f-g;g=c[B>>2]|0;c[y>>2]=g+d;c[u>>2]=d-g;g=1;do{f=c[A+(g<<2)>>2]|0;d=c[B+(g<<2)>>2]|0;c[y+(g<<2)>>2]=d+f;c[y+(7-g<<2)>>2]=f-d;g=g+1|0}while((g|0)!=4);g=0;do{f=c[y+(g<<2)>>2]|0;d=c[z+(g<<2)>>2]|0;c[w+(g<<2)>>2]=d+f;c[w+(15-g<<2)>>2]=f-d;g=g+1|0}while((g|0)!=8);g=0;do{d=c[x+(g<<2)>>2]|0;f=(c[w+(g<<2)>>2]|0)+o|0;j=f+d>>n;b[k+(g<<1)>>1]=(j+32768|0)>>>0>65535?j>>31^32767:j;d=f-d>>n;b[k+(31-g<<1)>>1]=(d+32768|0)>>>0>65535?d>>31^32767:d;g=g+1|0}while((g|0)!=16);m=m+1|0;if((m|0)==32)break;else k=k+64|0}l=C;return}function Sc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0;e=14-c|0;e=((b[a>>1]|0)+1>>1)+(1<>e&65535;c=0;do{f=c<<2;d=0;do{b[a+(d+f<<1)>>1]=e;d=d+1|0}while((d|0)!=4);c=c+1|0}while((c|0)!=4);return}function Tc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0;e=14-c|0;e=((b[a>>1]|0)+1>>1)+(1<>e&65535;c=0;do{f=c<<3;d=0;do{b[a+(d+f<<1)>>1]=e;d=d+1|0}while((d|0)!=8);c=c+1|0}while((c|0)!=8);return}function Uc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0;e=14-c|0;e=((b[a>>1]|0)+1>>1)+(1<>e&65535;c=0;do{f=c<<4;d=0;do{b[a+(d+f<<1)>>1]=e;d=d+1|0}while((d|0)!=16);c=c+1|0}while((c|0)!=16);return}function Vc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0;e=14-c|0;e=((b[a>>1]|0)+1>>1)+(1<>e&65535;c=0;do{f=c<<5;d=0;do{b[a+(d+f<<1)>>1]=e;d=d+1|0}while((d|0)!=32);c=c+1|0}while((c|0)!=32);return}function Wc(a,f,g,h,i,j,k,m,n,o){a=a|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0;u=l;l=l+128|0;t=u;j=t;p=j+128|0;do{c[j>>2]=0;j=j+4|0}while((j|0)<(p|0));p=d[i+96+n>>0]|0;s=g>>>1;j=0;do{r=j;j=j+1|0;c[t+((r+p&31)<<2)>>2]=b[i+112+(n*10|0)+(j<<1)>>1]}while((j|0)!=4);r=o+-5|0;h=h>>>1;if((m|0)>0){q=(k|0)>0;n=1<>1]|0;a=a+(c[t+(a>>>r<<2)>>2]|0)|0;b[p+(j<<1)>>1]=(a&i|0)==0?a:0-a>>31&n;j=j+1|0}while((j|0)!=(k|0))}g=g+1|0;if((g|0)==(m|0))break;else{f=f+(h<<1)|0;p=p+(s<<1)|0}}}l=u;return}function Xc(a,d,f,g,h,i,j,k,l,m,n,o,p){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0,u=0,v=0;r=h+112+(l*10|0)|0;q=c[h+100+(l<<2)>>2]|0;v=f>>>1;u=g>>>1;if((q|0)!=1){if(c[i>>2]|0){o=b[r>>1]|0;if((k|0)>0){f=1<>1]|0)+o|0;b[a+((R(n,v)|0)<<1)>>1]=(t&m|0)==0?t:0-t>>31&f;n=n+1|0}while((n|0)!=(k|0));n=1}else n=1}else n=0;if(c[i+8>>2]|0){g=b[r>>1]|0;j=j+-1|0;if((k|0)>0){f=1<>1]|0)+g|0;b[a+((R(o,v)|0)+j<<1)>>1]=(t&m|0)==0?t:0-t>>31&f;o=o+1|0}while((o|0)!=(k|0))}}if(!q){m=j;o=k;j=0}else{t=j;s=11}}else{t=j;n=0;s=11}if((s|0)==11){if(c[i+4>>2]|0){o=b[r>>1]|0;if((n|0)<(t|0)){f=1<>1]|0)+o|0;b[a+(j<<1)>>1]=(s&m|0)==0?s:0-s>>31&f;j=j+1|0}while((j|0)!=(t|0));j=1}else j=1}else j=0;if(c[i+12>>2]|0){s=b[r>>1]|0;o=k+-1|0;g=R(o,v)|0;q=R(o,u)|0;if((n|0)<(t|0)){f=1<>1]|0)+s|0;b[a+(m+g<<1)>>1]=(k&r|0)==0?k:0-k>>31&f;m=m+1|0}while((m|0)!=(t|0));m=t}else m=t}else{m=t;o=k}}dd(a,d,v,u,h,m,o,l,n,j,p);return}function Yc(d,f,g,h,i,j,k,l,m,n,o,p,q){d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;z=i+112+(m*10|0)|0;D=c[i+100+(m<<2)>>2]|0;M=g>>>1;K=h>>>1;E=(D|0)!=1;if(E){if(c[j>>2]|0){h=b[z>>1]|0;if((l|0)>0){u=1<>1]|0)+h|0;b[d+((R(g,M)|0)<<1)>>1]=(C&t|0)==0?C:0-C>>31&u;g=g+1|0}while((g|0)!=(l|0));w=1}else w=1}else w=0;if(c[j+8>>2]|0){v=b[z>>1]|0;g=k+-1|0;if((l|0)>0){u=1<>1]|0)+v|0;b[d+((R(h,M)|0)+g<<1)>>1]=(C&t|0)==0?C:0-C>>31&u;h=h+1|0}while((h|0)!=(l|0))}}else g=k;if(!D){C=g;x=0;B=0}else{y=w;A=11}}else{g=k;y=0;A=11}if((A|0)==11){if(c[j+4>>2]|0){t=b[z>>1]|0;if((y|0)<(g|0)){v=1<>1]|0)+t|0;b[d+(h<<1)>>1]=(C&u|0)==0?C:0-C>>31&v;h=h+1|0}while((h|0)!=(g|0));x=1}else x=1}else x=0;if(c[j+12>>2]|0){w=b[z>>1]|0;l=l+-1|0;u=R(l,M)|0;v=R(l,K)|0;if((y|0)<(g|0)){t=1<>1]|0)+w|0;b[d+(h+u<<1)>>1]=(C&k|0)==0?C:0-C>>31&t;h=h+1|0}while((h|0)!=(g|0));C=g;w=y;B=1}else{C=g;w=y;B=1}}else{C=g;w=y;B=1}}dd(d,f,M,K,i,C,l,m,w,x,q);i=(D|0)==2;if(!(i&(a[p>>0]|0)==0)){h=p+1|0;g=(D|0)==3;if(g&(a[h>>0]|0)==0)if(!(c[j+4>>2]|0)){t=(c[j+8>>2]|0)==0;q=1;k=0;A=h}else{t=0;q=1;k=0;A=h}else{t=0;q=g;k=0;A=h}}else{if(!(c[j>>2]|0))g=(c[j+4>>2]|0)==0;else g=0;t=0;q=0;k=g&1;A=p+1|0}u=t&1;z=p+2|0;if(i&(a[z>>0]|0)==0?(c[j+8>>2]|0)==0:0)g=(c[j+12>>2]|0)==0;else g=0;v=g&1;y=p+3|0;if(q&(a[y>>0]|0)==0?(c[j>>2]|0)==0:0)g=(c[j+12>>2]|0)==0;else g=0;t=g&1;if(E&(a[n>>0]|0)!=0?(F=k+x|0,G=l-t|0,(F|0)<(G|0)):0){g=F;do{b[d+((R(g,M)|0)<<1)>>1]=b[f+((R(g,K)|0)<<1)>>1]|0;g=g+1|0}while((g|0)!=(G|0))}if(E&(a[n+1>>0]|0)!=0?(H=u+x|0,I=l-v|0,(H|0)<(I|0)):0){h=C+-1|0;g=H;do{b[d+(h+(R(g,M)|0)<<1)>>1]=b[f+(h+(R(g,K)|0)<<1)>>1]|0;g=g+1|0}while((g|0)!=(I|0))}if(B&(a[o>>0]|0)!=0?(s=k+w|0,J=C-u|0,(s|0)<(J|0)):0)do{b[d+(s<<1)>>1]=b[f+(s<<1)>>1]|0;s=s+1|0}while((s|0)!=(J|0));if(B&(a[o+1>>0]|0)!=0?(r=t+w|0,L=C-v|0,(r|0)<(L|0)):0){g=l+-1|0;s=R(g,K)|0;g=R(g,M)|0;do{b[d+(r+g<<1)>>1]=b[f+(r+s<<1)>>1]|0;r=r+1|0}while((r|0)!=(L|0))}if(i&(a[p>>0]|0)!=0)b[d>>1]=b[f>>1]|0;s=C+-1|0;if(q&(a[A>>0]|0)!=0)b[d+(s<<1)>>1]=b[f+(s<<1)>>1]|0;r=l+-1|0;if(i&(a[z>>0]|0)!=0)b[d+(s+(R(r,M)|0)<<1)>>1]=b[f+(s+(R(r,K)|0)<<1)>>1]|0;if(q&(a[y>>0]|0)!=0){d=d+((R(r,M)|0)<<1)|0;b[d>>1]=b[f+((R(r,K)|0)<<1)>>1]|0}return}function Zc(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;cd(a,b,2,c,d,e,f,g);return}function _c(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;cd(a,2,b,c,d,e,f,g);return}function $c(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;bd(a,b,2,c,d,e,f);return}function ad(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;bd(a,2,b,c,d,e,f);return}function bd(d,f,g,h,i,j,k){d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=f>>>1;y=g>>>1;z=k+-8|0;v=y<<2;w=R(A,-2)|0;x=0-A|0;u=1<>2]<=1){m=0-l|0;n=(a[i+s>>0]|0)==0;o=(a[j+s>>0]|0)==0;g=0;k=d;while(1){p=k+(x<<1)|0;q=e[p>>1]|0;r=e[k>>1]|0;f=(e[k+(w<<1)>>1]|0)+4-(e[k+(A<<1)>>1]|0)+(r-q<<2)>>3;f=(f|0)<(m|0)?m:(f|0)>(l|0)?l:f;if(n){q=f+q|0;b[p>>1]=(q&t|0)==0?q:0-q>>31&u}if(o){r=r-f|0;b[k>>1]=(r&t|0)==0?r:0-r>>31&u}g=g+1|0;if((g|0)==4)break;else k=k+(y<<1)|0}}s=s+1|0;if((s|0)==2)break;else d=d+(v<<1)|0}return}function cd(d,f,g,h,i,j,k,l){d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0;fa=f>>>1;ea=g>>>1;da=l+-8|0;M=h<>3;Z=M>>2;_=R(fa,-4)|0;$=fa*3|0;aa=S+_|0;ba=S+$|0;ca=(M>>1)+M>>3;K=1<>1]|0;l=b[d+(O<<1)>>1]|0;m=b[d+(P<<1)>>1]|0;f=m&65535;x=(h&65535)-((l&65535)<<1)+f|0;x=(x|0)>-1?x:0-x|0;s=b[d+(Q<<1)>>1]|0;r=b[d+(fa<<1)>>1]|0;q=b[d>>1]|0;g=q&65535;z=(s&65535)-((r&65535)<<1)+g|0;z=(z|0)>-1?z:0-z|0;n=e[d+(V<<1)>>1]|0;y=(e[d+(T<<1)>>1]|0)-((e[d+(U<<1)>>1]|0)<<1)+n|0;y=(y|0)>-1?y:0-y|0;o=e[d+(S<<1)>>1]|0;A=(e[d+(W<<1)>>1]|0)-((e[d+(X<<1)>>1]|0)<<1)+o|0;A=(A|0)>-1?A:0-A|0;t=z+x|0;u=A+y|0;H=c[i+(I<<2)>>2]<>0]|0;B=a[k+I>>0]|0;a:do if((u+t|0)<(M|0)){v=(H*5|0)+1>>1;G=(e[d+(_<<1)>>1]|0)-f|0;p=b[d+($<<1)>>1]|0;F=(p&65535)-g|0;if((((((F|0)>-1?F:0-F|0)+((G|0)>-1?G:0-G|0)|0)<(Y|0)?(G=f-g|0,(((G|0)>-1?G:0-G|0)|0)<(v|0)):0)?(G=(e[d+(aa<<1)>>1]|0)-n|0,F=(e[d+(ba<<1)>>1]|0)-o|0,(((F|0)>-1?F:0-F|0)+((G|0)>-1?G:0-G|0)|0)<(Y|0)):0)?(G=n-o|0,((t<<1|0)<(Z|0)?(((G|0)>-1?G:0-G|0)|0)<(v|0):0)&(u<<1|0)<(Z|0)):0){x=H<<1;v=w<<24>>24==0;w=0-x|0;u=B<<24>>24==0;f=0;t=d;while(1){o=h&65535;n=l&65535;m=m&65535;l=q&65535;h=r&65535;g=s&65535;if(v){H=e[t+(_<<1)>>1]|0;G=((o+4+h+(m+n+l<<1)|0)>>>3)-m|0;b[t+(P<<1)>>1]=((G|0)<(w|0)?w:(G|0)>(x|0)?x:G)+m;G=((o+2+n+m+l|0)>>>2)-n|0;b[t+(O<<1)>>1]=((G|0)<(w|0)?w:(G|0)>(x|0)?x:G)+n;H=((o*3|0)+4+n+m+l+(H<<1)>>3)-o|0;b[t+(N<<1)>>1]=((H|0)<(w|0)?w:(H|0)>(x|0)?x:H)+o}if(u){H=((n+4+g+(l+m+h<<1)|0)>>>3)-l|0;b[t>>1]=((H|0)<(w|0)?w:(H|0)>(x|0)?x:H)+l;H=((m+2+l+h+g|0)>>>2)-h|0;b[t+(fa<<1)>>1]=((H|0)<(w|0)?w:(H|0)>(x|0)?x:H)+h;H=((m+4+l+h+(g*3|0)+((p&65535)<<1)|0)>>>3)-g|0;b[t+(Q<<1)>>1]=((H|0)<(w|0)?w:(H|0)>(x|0)?x:H)+g}g=t+(ea<<1)|0;f=f+1|0;if((f|0)==4)break a;t=g;h=b[g+(N<<1)>>1]|0;l=b[g+(O<<1)>>1]|0;m=b[g+(P<<1)>>1]|0;q=b[g>>1]|0;r=b[g+(fa<<1)>>1]|0;s=b[g+(Q<<1)>>1]|0;p=b[g+($<<1)>>1]|0}}E=H>>1;F=H*10|0;G=0-H|0;D=w<<24>>24==0;C=B<<24>>24==0;B=D&(y+x|0)<(ca|0);y=0-E|0;x=C&(A+z|0)<(ca|0);f=0;w=d;while(1){u=h&65535;v=w+(O<<1)|0;p=l&65535;t=w+(P<<1)|0;o=m&65535;m=q&65535;n=w+(fa<<1)|0;l=r&65535;h=s&65535;g=((m-o|0)*9|0)+8+(R(l-p|0,-3)|0)>>4;if((((g|0)>-1?g:0-g|0)|0)<(F|0)){g=(g|0)<(G|0)?G:(g|0)>(H|0)?H:g;if(D){A=g+o|0;b[t>>1]=(A&J|0)==0?A:0-A>>31&K}if(C){A=m-g|0;b[w>>1]=(A&J|0)==0?A:0-A>>31&K}if(B){A=((u+1+o|0)>>>1)-p+g>>1;A=((A|0)<(y|0)?y:(A|0)>(E|0)?E:A)+p|0;b[v>>1]=(A&J|0)==0?A:0-A>>31&K}if(x){A=((m+1+h|0)>>>1)-l-g>>1;A=((A|0)<(y|0)?y:(A|0)>(E|0)?E:A)+l|0;b[n>>1]=(A&J|0)==0?A:0-A>>31&K}}g=w+(ea<<1)|0;f=f+1|0;if((f|0)==4)break a;w=g;h=b[g+(N<<1)>>1]|0;l=b[g+(O<<1)>>1]|0;m=b[g+(P<<1)>>1]|0;q=b[g>>1]|0;r=b[g+(fa<<1)>>1]|0;s=b[g+(Q<<1)>>1]|0}}while(0);I=I+1|0;if((I|0)==2)break;else d=d+(L<<1)|0}return}function dd(e,f,g,h,i,j,k,l,m,n,o){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;p=c[i+100+(l<<2)>>2]|0;x=a[1738+(p<<2)>>0]|0;y=a[1738+(p<<2)+2>>0]|0;if((n|0)<(k|0)){u=R((a[1738+(p<<2)+3>>0]|0)+n|0,h)|0;z=(m|0)<(j|0);w=1<>0]|0)+n|0,h)|0;s=n;p=R(n,h)|0;while(1){if(z){n=r+x|0;q=u+y|0;o=m;do{A=b[f+(o+p<<1)>>1]|0;C=b[f+(n+o<<1)>>1]|0;B=b[f+(q+o<<1)>>1]|0;A=(b[i+112+(l*10|0)+(d[1754+(((A&65535)>(C&65535)?3:((A<<16>>16!=C<<16>>16)<<31>>31)+2|0)+((A&65535)>(B&65535)?1:(A<<16>>16!=B<<16>>16)<<31>>31))>>0]<<1)>>1]|0)+(A&65535)|0;b[e+(o+t<<1)>>1]=(A&v|0)==0?A:0-A>>31&w;o=o+1|0}while((o|0)!=(j|0))}s=s+1|0;if((s|0)==(k|0))break;else{t=t+g|0;u=u+h|0;r=r+h|0;p=p+h|0}}}return}function ed(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=c[b+136>>2]|0;j=1<>2]|0)+13080>>2];o=j+-1|0;k=o&e;l=(o&f|0)!=0;i=(a[n+309>>0]|0)!=0|l;b=i&1;c[n+31296>>2]=b;m=(a[n+308>>0]|0)!=0|(k|0)!=0;c[n+31292>>2]=m&1;if(!(o&(f|e)))i=d[n+311>>0]|0;else i=m&i&1;c[n+31300>>2]=i;if((k+g|0)==(j|0))b=(a[n+310>>0]|0)!=0&(l^1)&1;c[n+31308>>2]=b;if(!b)b=0;else b=(g+e|0)<(c[n+312>>2]|0);c[n+31304>>2]=b&1;c[n+31288>>2]=(h+f|0)<(c[n+316>>2]|0)&m&1;return}function fd(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;w=l;l=l+16|0;t=w;p=(c[b+136>>2]|0)+204|0;r=me(13196)|0;c[t>>2]=r;v=r;a:do if(r){s=r+4|0;q=c[s>>2]|0;e=gd(b)|0;if((e|0)>=0){c[q>>2]=0;g=q+72|0;c[g>>2]=1;o=Pd(p,8)|0;f=q+4|0;c[f>>2]=o;do if((o|0)<=3){a[q+8>>0]=0;m=q+13120|0;c[m>>2]=Td(p,32)|0;e=Td(p,32)|0;n=q+13124|0;c[n>>2]=e;e=Dd(c[m>>2]|0,e,0,c[b+4>>2]|0)|0;if((e|0)>=0){o=q+52|0;c[o>>2]=(Pd(p,8)|0)+8;switch(c[f>>2]|0){case 0:{f=32;break}case 1:{f=54;break}case 2:{f=56;break}default:f=58}c[q+60>>2]=f;c[q+56>>2]=1;f=Ae(f)|0;if(f){c[q+13180>>2]=0;c[q+13168>>2]=0;k=d[f+5>>0]|0;c[q+13172>>2]=k;c[q+13176>>2]=k;k=d[f+6>>0]|0;c[q+13184>>2]=k;c[q+13188>>2]=k;c[q+64>>2]=8;if((c[g>>2]|0)>0){f=0;do{c[q+76+(f*12|0)>>2]=1;c[q+76+(f*12|0)+4>>2]=0;c[q+76+(f*12|0)+8>>2]=-1;f=f+1|0}while((f|0)<(c[g>>2]|0))}g=(Ud(p)|0)+3|0;f=q+13064|0;c[f>>2]=g;g=1<>2]=h+(c[m>>2]|0)&g;c[n>>2]=(c[n>>2]|0)+h&g;g=q+13068|0;c[g>>2]=Ud(p)|0;h=q+13072|0;c[h>>2]=(Ud(p)|0)+2;j=Ud(p)|0;k=c[h>>2]|0;i=q+13076|0;c[i>>2]=k+j;if(k>>>0<(c[f>>2]|0)>>>0){x=Ud(p)|0;j=q+13092|0;c[j>>2]=x;k=q+13088|0;c[k>>2]=x;a[q+12940>>0]=1;a[q+12941>>0]=Sd(p)|0;x=Sd(p)|0;c[q+68>>2]=x;if(x|0){x=q+13044|0;a[x>>0]=(Pd(p,4)|0)+1;a[q+13045>>0]=(Pd(p,4)|0)+1;y=(Ud(p)|0)+3|0;c[q+13048>>2]=y;c[q+13052>>2]=(Ud(p)|0)+y;if((d[x>>0]|0|0)>(c[o>>2]|0)){e=-1094995529;break}a[q+13056>>0]=Sd(p)|0}c[q+2184>>2]=0;a[q+12942>>0]=0;a[q+13060>>0]=1;a[q+13061>>0]=Sd(p)|0;c[q+160>>2]=0;c[q+164>>2]=1;if(Sd(p)|0?(y=Sd(p)|0,Rd(p,7),y|0):0){c[q+13096>>2]=Sd(p)|0;c[q+13100>>2]=Sd(p)|0;c[q+13104>>2]=Sd(p)|0;c[q+13108>>2]=Sd(p)|0;Sd(p)|0;c[q+13112>>2]=Sd(p)|0;Sd(p)|0;c[q+13116>>2]=Sd(p)|0;Sd(p)|0}m=c[m>>2]|0;c[q+12>>2]=m;n=c[n>>2]|0;c[q+16>>2]=n;f=c[f>>2]|0;y=(c[g>>2]|0)+f|0;c[q+13080>>2]=y;g=f+-1|0;c[q+13084>>2]=g;x=1<>y;c[q+13128>>2]=z;x=n+-1+x>>y;c[q+13132>>2]=x;c[q+13136>>2]=R(z,x)|0;c[q+13140>>2]=m>>f;c[q+13144>>2]=n>>f;x=c[h>>2]|0;c[q+13148>>2]=m>>x;c[q+13152>>2]=n>>x;c[q+13156>>2]=m>>g;c[q+13160>>2]=n>>g;x=y-x|0;c[q+13164>>2]=(1<>2]=((c[o>>2]|0)*6|0)+-48;if((((!(y>>>0>6?1:((1<>2]|0)>>>0<=x>>>0:0)?(c[j>>2]|0)>>>0<=x>>>0:0)?(c[i>>2]|0)>>>0<=(y>>>0<5?y:5)>>>0:0)?(hd(p)|0)>=0:0){h=b+272|0;e=c[h>>2]|0;if((e|0)!=0?(Af(c[e+4>>2]|0,c[s>>2]|0,c[r+8>>2]|0)|0)==0:0){pe(t);e=0;break a}else e=0;do{f=b+400+(e<<2)|0;g=c[f>>2]|0;do if(g|0){if(c[c[g+4>>2]>>2]|0)break;pe(f)}while(0);e=e+1|0}while((e|0)!=256);e=c[h>>2]|0;do if(e|0?(u=b+200|0,(c[u>>2]|0)==(c[e+4>>2]|0)):0){y=b+1424|0;pe(y);z=ne(c[h>>2]|0)|0;c[y>>2]=z;if(z|0)break;c[u>>2]=0}while(0);pe(h);c[h>>2]=v;e=0;break a}}else e=-1094995529}else e=-22}}else e=-1094995529;while(0);pe(t)}}else e=-12;while(0);l=w;return e|0}function gd(b){b=b|0;var d=0,e=0,f=0,g=0;e=me(468)|0;if(!e)d=-12;else{f=c[e+4>>2]|0;c[f+4>>2]=1;g=f+8|0;c[g>>2]=1;a[f>>0]=0;c[f+348>>2]=1;d=0;do{c[f+352+(d<<2)>>2]=1;c[f+380+(d<<2)>>2]=0;c[f+408+(d<<2)>>2]=-1;d=d+1|0}while((d|0)<(c[g>>2]|0));c[f+436>>2]=0;c[f+440>>2]=1;a[f+444>>0]=0;d=b+208|0;pe(d);c[d>>2]=e;d=0}return d|0}function hd(a){a=a|0;var b=0;b=c[a+12>>2]|0;return b-(id(a)|0)|0}function id(a){a=a|0;return c[a+8>>2]|0} +function jd(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;M=l;l=l+16|0;L=M+4|0;H=M;K=(c[b+136>>2]|0)+204|0;i=ee(1692)|0;c[H>>2]=i;a:do if(!i)d=-12;else{J=je(i,1692,6,0,0)|0;c[L>>2]=J;I=J;if(!J){be(H);d=-12;break}a[i+53>>0]=1;f=i+44|0;c[f>>2]=1;g=i+48|0;c[g>>2]=1;h=i+52|0;a[h>>0]=1;a[i+57>>0]=0;c[i+60>>2]=0;c[i+64>>2]=0;a[i+1629>>0]=2;J=Ud(K)|0;b:do if((J>>>0<=255?(d=Ud(K)|0,c[i>>2]=d,d>>>0<=31):0)?(e=c[b+272+(d<<2)>>2]|0,(e|0)!=0):0){G=c[e+4>>2]|0;a[i+41>>0]=Sd(K)|0;a[i+39>>0]=Sd(K)|0;c[i+1624>>2]=Pd(K,3)|0;a[i+4>>0]=Sd(K)|0;a[i+5>>0]=Sd(K)|0;c[i+8>>2]=(Ud(K)|0)+1;c[i+12>>2]=(Ud(K)|0)+1;c[i+16>>2]=ld(K)|0;a[i+20>>0]=Sd(K)|0;a[i+21>>0]=Sd(K)|0;F=(Sd(K)|0)&255;a[i+22>>0]=F;d=i+24|0;c[d>>2]=0;if(F<<24>>24)c[d>>2]=Ud(K)|0;F=ld(K)|0;c[i+28>>2]=F;if((F+12|0)>>>0<=24?(F=ld(K)|0,c[i+32>>2]=F,(F+12|0)>>>0<=24):0){a[i+36>>0]=Sd(K)|0;a[i+37>>0]=Sd(K)|0;a[i+38>>0]=Sd(K)|0;a[i+40>>0]=Sd(K)|0;F=i+42|0;a[F>>0]=Sd(K)|0;a[i+43>>0]=Sd(K)|0;if(!(a[F>>0]|0))o=c[H>>2]|0;else{c[f>>2]=(Ud(K)|0)+1;d=(Ud(K)|0)+1|0;c[g>>2]=d;e=c[f>>2]|0;if(!e){d=-1094995529;break}if((d|0)==0?1:(e|0)>=(c[G+13120>>2]|0)){d=-1094995529;break}if((d|0)>=(c[G+13124>>2]|0)){d=-1094995529;break}E=i+1648|0;c[E>>2]=he(e,4)|0;F=he(c[g>>2]|0,4)|0;c[i+1652>>2]=F;if((c[E>>2]|0)==0|(F|0)==0){d=-12;break}F=(Sd(K)|0)&255;a[h>>0]=F;if(!(F<<24>>24)){F=c[f>>2]|0;d=F+-1|0;if((F|0)>1){i=c[H>>2]|0;f=i+1648|0;j=i+44|0;e=0;g=0;d=0;while(1){h=(Ud(K)|0)+1|0;c[(c[f>>2]|0)+(e<<2)>>2]=h;g=Jf(h|0,0,g|0,d|0)|0;h=C;e=e+1|0;d=(c[j>>2]|0)+-1|0;if((e|0)>=(d|0))break;else d=h}}else{h=0;g=0}e=c[G+13128>>2]|0;f=((e|0)<0)<<31>>31;if(!(f>>>0>h>>>0|(f|0)==(h|0)&e>>>0>g>>>0)){d=-1094995529;break}j=Hf(e|0,f|0,g|0,h|0)|0;c[(c[i+1648>>2]|0)+(d<<2)>>2]=j;j=c[H>>2]|0;i=j+48|0;F=c[i>>2]|0;d=F+-1|0;if((F|0)>1){f=j+1652|0;e=0;g=0;d=0;while(1){h=(Ud(K)|0)+1|0;c[(c[f>>2]|0)+(e<<2)>>2]=h;g=Jf(h|0,0,g|0,d|0)|0;h=C;e=e+1|0;d=(c[i>>2]|0)+-1|0;if((e|0)>=(d|0))break;else d=h}}else{h=0;g=0}e=c[G+13132>>2]|0;f=((e|0)<0)<<31>>31;if(!(f>>>0>h>>>0|(f|0)==(h|0)&e>>>0>g>>>0)){d=-1094995529;break}F=Hf(e|0,f|0,g|0,h|0)|0;c[(c[j+1652>>2]|0)+(d<<2)>>2]=F}F=(Sd(K)|0)&255;o=c[H>>2]|0;a[o+53>>0]=F}a[o+54>>0]=Sd(K)|0;F=(Sd(K)|0)&255;a[o+55>>0]=F;if((F<<24>>24?(a[o+56>>0]=Sd(K)|0,F=(Sd(K)|0)&255,a[o+57>>0]=F,F<<24>>24==0):0)?(F=o+60|0,c[F>>2]=(ld(K)|0)<<1,E=(ld(K)|0)<<1,c[o+64>>2]=E,(E+13|0)>>>0>26?1:((c[F>>2]|0)+13|0)>>>0>26):0){d=-1094995529;break}F=(Sd(K)|0)&255;a[o+68>>0]=F;if(F<<24>>24){d=o+69|0;md(d);d=nd(b,d,G)|0;if((d|0)<0)break}else d=0;a[o+1617>>0]=Sd(K)|0;F=(Ud(K)|0)+2|0;c[o+1620>>2]=F;E=G+13080|0;if(F>>>0<=(c[E>>2]|0)>>>0){a[o+1628>>0]=Sd(K)|0;if(Sd(K)|0?(F=Sd(K)|0,Pd(K,7)|0,F|0):0)od(b,o);j=o+44|0;i=o+1656|0;c[i>>2]=he((c[j>>2]|0)+1|0,4)|0;m=o+48|0;k=o+1660|0;c[k>>2]=he((c[m>>2]|0)+1|0,4)|0;F=G+13128|0;D=he(c[F>>2]|0,4)|0;n=o+1664|0;c[n>>2]=D;if((c[i>>2]|0)!=0?!((c[k>>2]|0)==0|(D|0)==0):0){do if(a[o+52>>0]|0){f=o+1648|0;e=c[f>>2]|0;if(!e){c[f>>2]=he(c[j>>2]|0,4)|0;c[o+1652>>2]=he(c[m>>2]|0,4)|0;e=c[f>>2]|0;if(!e){d=-12;break b}}h=c[o+1652>>2]|0;if(!h){d=-12;break b}f=c[j>>2]|0;if((f|0)>0){g=0;do{D=g;g=g+1|0;B=c[F>>2]|0;c[e+(D<<2)>>2]=((R(B,g)|0)/(f|0)|0)-((R(B,D)|0)/(f|0)|0);f=c[j>>2]|0}while((g|0)<(f|0))}e=c[m>>2]|0;if((e|0)<=0)break;g=G+13132|0;f=0;do{D=f;f=f+1|0;B=c[g>>2]|0;c[h+(D<<2)>>2]=((R(B,f)|0)/(e|0)|0)-((R(B,D)|0)/(e|0)|0);e=c[m>>2]|0}while((f|0)<(e|0))}while(0);i=c[i>>2]|0;c[i>>2]=0;if((c[j>>2]|0)>0){f=c[o+1648>>2]|0;e=0;g=0;do{g=(c[f+(e<<2)>>2]|0)+g|0;e=e+1|0;c[i+(e<<2)>>2]=g}while((e|0)<(c[j>>2]|0))}g=c[k>>2]|0;c[g>>2]=0;if((c[m>>2]|0)>0){f=c[o+1652>>2]|0;e=0;h=0;do{h=(c[f+(e<<2)>>2]|0)+h|0;e=e+1|0;c[g+(e<<2)>>2]=h}while((e|0)<(c[m>>2]|0))}e=c[F>>2]|0;if((e|0)>0){h=c[n>>2]|0;f=0;g=0;do{f=(g>>>0>(c[i+(f<<2)>>2]|0)>>>0&1)+f|0;c[h+(g<<2)>>2]=f;g=g+1|0;e=c[F>>2]|0}while((g|0)<(e|0))}B=R(c[G+13132>>2]|0,e)|0;A=o+1668|0;c[A>>2]=he(B,4)|0;e=o+1672|0;c[e>>2]=he(B,4)|0;f=o+1676|0;c[f>>2]=he(B,4)|0;D=G+13164|0;g=(c[D>>2]|0)+2|0;g=he(R(g,g)|0,4)|0;c[o+1688>>2]=g;if(!(c[A>>2]|0)){d=-12;break}if(!(c[e>>2]|0)){d=-12;break}if((c[f>>2]|0)==0|(g|0)==0){d=-12;break}if((B|0)>0){y=c[H>>2]|0;n=y+44|0;o=y+1656|0;p=y+48|0;q=y+1660|0;r=y+1652|0;s=c[q>>2]|0;t=c[y+1648>>2]|0;u=c[o>>2]|0;v=c[y+1668>>2]|0;w=c[y+1672>>2]|0;x=y+1652|0;y=y+1648|0;m=0;do{k=c[F>>2]|0;z=(m|0)%(k|0)|0;A=(m|0)/(k|0)|0;f=c[n>>2]|0;e=0;while(1){if((e|0)>=(f|0)){j=0;break}g=e+1|0;if(z>>>0<(c[(c[o>>2]|0)+(g<<2)>>2]|0)>>>0){j=e;break}else e=g}f=c[p>>2]|0;e=0;while(1){if((e|0)>=(f|0)){i=0;break}g=e+1|0;if(A>>>0<(c[(c[q>>2]|0)+(g<<2)>>2]|0)>>>0){i=e;break}else e=g}if((j|0)>0){g=c[(c[x>>2]|0)+(i<<2)>>2]|0;h=c[y>>2]|0;e=0;f=0;do{e=(R(c[h+(f<<2)>>2]|0,g)|0)+e|0;f=f+1|0}while((f|0)!=(j|0))}else e=0;if((i|0)>0){g=c[r>>2]|0;f=0;do{e=(R(c[g+(f<<2)>>2]|0,k)|0)+e|0;f=f+1|0}while((f|0)!=(i|0))}A=R(c[t+(j<<2)>>2]|0,A-(c[s+(i<<2)>>2]|0)|0)|0;A=e+z+A-(c[u+(j<<2)>>2]|0)|0;c[v+(m<<2)>>2]=A;c[w+(A<<2)>>2]=m;m=m+1|0}while((m|0)!=(B|0))}f=c[H>>2]|0;u=f+48|0;g=c[u>>2]|0;if((g|0)>0){v=f+44|0;w=f+1660|0;t=f+1656|0;x=f+1676|0;s=f+1668|0;e=0;h=0;f=c[v>>2]|0;do if((f|0)>0){p=c[w>>2]|0;r=h+1|0;q=p+(r<<2)|0;p=p+(h<<2)|0;o=0;g=c[q>>2]|0;do{i=c[p>>2]|0;h=o;o=o+1|0;if(i>>>0>>0){m=c[t>>2]|0;n=m+(o<<2)|0;m=m+(h<<2)|0;f=c[n>>2]|0;do{h=c[m>>2]|0;if(h>>>0>>0){j=c[x>>2]|0;k=c[s>>2]|0;g=h;do{c[j+(c[k+((R(c[F>>2]|0,i)|0)+g<<2)>>2]<<2)>>2]=e;g=g+1|0;f=c[n>>2]|0}while(g>>>0>>0);g=c[q>>2]|0}i=i+1|0}while(i>>>0>>0);f=c[v>>2]|0}e=e+1|0}while((o|0)<(f|0));h=r;g=c[u>>2]|0}else h=h+1|0;while((h|0)<(g|0));f=c[H>>2]|0}else e=0;m=he(e,4)|0;c[f+1680>>2]=m;if(!m){d=-12;break}n=f+48|0;e=c[n>>2]|0;if((e|0)>0){k=f+44|0;o=f+1660|0;p=f+1656|0;j=0;g=c[k>>2]|0;do{if((g|0)>0){h=(c[o>>2]|0)+(j<<2)|0;i=c[p>>2]|0;e=0;do{B=R(c[F>>2]|0,c[h>>2]|0)|0;c[m+((R(g,j)|0)+e<<2)>>2]=(c[i+(e<<2)>>2]|0)+B;e=e+1|0;g=c[k>>2]|0}while((e|0)<(g|0));e=c[n>>2]|0}j=j+1|0}while((j|0)<(e|0))}r=(c[E>>2]|0)-(c[G+13072>>2]|0)|0;g=c[f+1688>>2]|0;e=c[D>>2]|0;c[f+1684>>2]=g+(e+3<<2);do if((e|0)>-2){f=0;e=e+2|0;do{c[g+((R(e,f)|0)<<2)>>2]=-1;c[g+(f<<2)>>2]=-1;f=f+1|0;h=c[D>>2]|0;e=h+2|0}while((f|0)<(e|0));if((h|0)<0)break;q=c[H>>2]|0;n=q+1668|0;o=r<<1;p=(r|0)>0;q=q+1684|0;m=0;e=h;while(1){if((e|0)>=0){i=m>>r;j=c[n>>2]|0;k=c[q>>2]|0;h=0;while(1){f=c[j+((R(c[F>>2]|0,i)|0)+(h>>r)<<2)>>2]<>2]=f;e=c[D>>2]|0;if((h|0)<(e|0))h=h+1|0;else break}}if((m|0)<(e|0))m=m+1|0;else break}}while(0);if((hd(K)|0)<0)break;d=b+400+(J<<2)|0;pe(d);c[d>>2]=I;d=0;break a}else d=-12}else d=-1094995529}else d=-1094995529}else d=-1094995529;while(0);pe(L)}while(0);l=M;return d|0}function kd(a,b){a=a|0;b=b|0;var d=0;a=l;l=l+16|0;d=a;c[d>>2]=b;be(b+1648|0);be(b+1652|0);be(b+1656|0);be(b+1660|0);be(b+1664|0);be(b+1668|0);be(b+1672|0);be(b+1680|0);be(b+1676|0);be(b+1688|0);be(d);l=a;return}function ld(a){a=a|0;return Xd(a)|0}function md(b){b=b|0;var c=0,d=0,e=0;c=0;do{d=b+(c<<6)|0;e=d+16|0;do{a[d>>0]=16;d=d+1|0}while((d|0)<(e|0));a[b+1536+c>>0]=16;a[b+1542+c>>0]=16;c=c+1|0}while((c|0)!=6);d=b+384|0;c=1759;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+448|0;c=1759;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+512|0;c=1759;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+576|0;c=1823;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+640|0;c=1823;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+704|0;c=1823;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+768|0;c=1759;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+832|0;c=1759;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+896|0;c=1759;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+960|0;c=1823;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+1024|0;c=1823;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+1088|0;c=1823;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+1152|0;c=1759;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+1216|0;c=1759;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+1280|0;c=1759;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+1344|0;c=1823;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+1408|0;c=1823;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+1472|0;c=1823;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));return}function nd(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;o=(c[b+136>>2]|0)+204|0;l=0;a:while(1){p=(l|0)>0?64:16;q=(l|0)>1;r=l+-2|0;m=(l|0)==3?3:1;j=1<<(l<<1)+4;j=(j|0)<64?j:64;n=(l|0)==0;k=0;do{if(!(((Sd(o)|0)&255)<<24>>24)){b=Ud(o)|0;if(b|0){if(k>>>0>>0){b=-1094995529;break a}b=k-b|0;Pf(e+(l*384|0)+(k<<6)|0,e+(l*384|0)+(b<<6)|0,p|0)|0;if(q)a[e+1536+(r*6|0)+k>>0]=a[e+1536+(r*6|0)+b>>0]|0}}else{if(q){g=(ld(o)|0)+8|0;a[e+1536+(r*6|0)+k>>0]=g;b=0}else{b=0;g=8}do{if(n){h=(d[342+b>>0]|0)<<2;i=326+b|0}else{h=(d[422+b>>0]|0)<<3;i=358+b|0}i=(d[i>>0]|0)+h|0;g=(g+256+(ld(o)|0)|0)%256|0;a[e+(l*384|0)+(k<<6)+i>>0]=g;b=b+1|0}while((b|0)<(j|0))}k=k+m|0}while((k|0)<6);l=l+1|0;if((l|0)>=4){s=16;break}}if((s|0)==16)if((c[f+4>>2]|0)==3){b=0;do{a[e+1216+b>>0]=a[e+832+b>>0]|0;a[e+1280+b>>0]=a[e+896+b>>0]|0;a[e+1408+b>>0]=a[e+1024+b>>0]|0;a[e+1472+b>>0]=a[e+1088+b>>0]|0;b=b+1|0}while((b|0)!=64);a[e+1543>>0]=a[e+1537>>0]|0;a[e+1544>>0]=a[e+1538>>0]|0;a[e+1546>>0]=a[e+1540>>0]|0;a[e+1547>>0]=a[e+1541>>0]|0;b=0}else b=0;return b|0}function od(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;g=(c[b+136>>2]|0)+204|0;if(a[e+21>>0]|0)a[e+1629>>0]=(Ud(g)|0)+2;a[e+1630>>0]=Sd(g)|0;f=(Sd(g)|0)&255;a[e+1631>>0]=f;if(f<<24>>24){a[e+1632>>0]=Ud(g)|0;b=Ud(g)|0;f=e+1633|0;a[f>>0]=b;if((b&255)>>>0<5){b=0;while(1){a[e+1634+b>>0]=Xd(g)|0;a[e+1639+b>>0]=Xd(g)|0;if((b|0)<(d[f>>0]|0))b=b+1|0;else{h=6;break}}}}else h=6;if((h|0)==6){a[e+1644>>0]=Ud(g)|0;a[e+1645>>0]=Ud(g)|0}return}function pd(a){a=a|0;var b=0;b=a+136|0;do qd(a);while((rd((c[b>>2]|0)+204|0)|0)!=0);return 1}function qd(a){a=a|0;var d=0,e=0,f=0,g=0;f=(c[a+136>>2]|0)+204|0;e=0;do{d=Pd(f,8)|0;e=d+e|0}while((d|0)==255);d=0;do{g=Pd(f,8)|0;d=g+d|0}while((g|0)==255);a:do if((c[a+2512>>2]|0)!=39)if((e|0)==132){ud(a);break}else{Rd(f,d<<3);break}else switch(e|0){case 256:{ud(a);break a}case 257:{b[a+4524>>1]=Pd(f,16)|0;break a}default:{Rd(f,d<<3);break a}}while(0);return}function rd(a){a=a|0;if((sd(a)|0)>0)a=(Qd(a,8)|0)!=128;else a=0;return a&1|0}function sd(a){a=a|0;var b=0;b=c[a+12>>2]|0;return b-(td(a)|0)|0}function td(a){a=a|0;return c[a+8>>2]|0}function ud(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;f=(c[b+136>>2]|0)+204|0;h=(Pd(f,8)|0)&255;g=b+4468|0;e=0;do{switch(h<<24>>24){case 0:{a[g>>0]=1;d=0;do{a[b+4420+(e<<4)+d>>0]=Pd(f,8)|0;d=d+1|0}while((d|0)!=16);break}case 1:{Rd(f,16);break}case 2:{Rd(f,32);break}default:{}}e=e+1|0}while((e|0)!=3);return}function vd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;d=c[b+52>>2]|0;f=a+60|0;if((d|0)>0)if((c[f>>2]|0)==0?(d=ee(d)|0,c[f>>2]=d,(d|0)==0):0)d=-12;else e=5;else{c[f>>2]=0;e=5}if((e|0)==5){e=a+12|0;c[e>>2]=b;c[a+424>>2]=0;c[a+800>>2]=1;d=a+912|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;d=a+936|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+928|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=xa[c[b+76>>2]&3](a)|0;if((d|0)<0){be(f);c[e>>2]=0}else d=0}return d|0}function wd(a){a=a|0;var b=0,d=0,e=0;if(a|0){b=a+12|0;d=c[b>>2]|0;if(d|0?(e=c[d+92>>2]|0,e|0):0)xa[e&3](a)|0;c[a+796>>2]=0;be(a+60|0);c[b>>2]=0;c[a+808>>2]=0}return 0}function xd(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;if((f|0)>0){j=(e|0)==0;h=0;do{i=d+(R(h,g)|0)|0;i=Ba[b&1](a,i)|0;if(!j)c[e+(h<<2)>>2]=i;h=h+1|0}while((h|0)!=(f|0))}return 0}function yd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;if((f|0)>0){h=(e|0)==0;g=0;do{i=za[b&1](a,d,g,0)|0;if(!h)c[e+(g<<2)>>2]=i;g=g+1|0}while((g|0)!=(f|0))}return 0}function zd(b,f,g){b=b|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=Ae(c[f+76>>2]|0)|0;m=l+4|0;a:do if(!(a[m>>0]|0))b=0;else{n=f+64|0;i=l+5|0;j=f+68|0;k=l+6|0;h=0;while(1){b=(R((((e[l+8+(h<<1)>>1]|0)>>>11&15)+8&65535)>>>3,c[n>>2]|0)|0)+31&-32;if((h+-1|0)>>>0<2){b=0-(0-b>>d[i>>0])|0;c[f+32+(h<<2)>>2]=b;g=0-(0-((c[j>>2]|0)+31&-32)>>d[k>>0])|0}else{c[f+32+(h<<2)>>2]=b;g=(c[j>>2]|0)+31&-32}b=le((R(b,g)|0)+32|0)|0;c[f+304+(h<<2)>>2]=b;if(!b){b=-1;break a}c[f+(h<<2)>>2]=c[b+4>>2];h=h+1|0;if((h|0)>=(d[m>>0]|0)){b=0;break}}}while(0);return b|0}function Ad(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;Kf(a|0,0,976)|0;e=(b|0)!=0;if(e){d=c[b+8>>2]|0;c[a+48>>2]=c[b+12>>2]}else d=-1;c[a+8>>2]=d;c[a+100>>2]=0;c[a+104>>2]=1;c[a+888>>2]=0;c[a+892>>2]=1;c[a+896>>2]=0;c[a+900>>2]=1;c[a+476>>2]=1;c[a+816>>2]=1;c[a+820>>2]=1;c[a+220>>2]=0;c[a+224>>2]=1;c[a+136>>2]=-1;c[a+416>>2]=-1;d=a+696|0;c[d>>2]=0;c[d+4>>2]=-2147483648;if((e?(f=c[b+52>>2]|0,(f|0)!=0):0)?(f=ee(f)|0,c[a+60>>2]=f,(f|0)==0):0)d=-12;else d=0;return d|0}function Bd(a){a=a|0;var b=0;b=Yd(976)|0;if(b){if((Ad(b,a)|0)<0){ae(b);b=0}}else b=0;return b|0}function Cd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=l;l=l+80|0;i=j;f=i;g=e;h=f+80|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));h=a+12|0;g=c[h>>2]|0;do if((g|0)!=0?(c[g+8>>2]|0)==0:0){c[d>>2]=0;f=c[a+124>>2]|0;g=c[a+128>>2]|0;if(g|f|0?Dd(f,g,0,0)|0:0){f=-22;break}xe(b);f=c[h>>2]|0;if(((c[f+16>>2]&32|0)==0?(c[e+28>>2]|0)==0:0)?(c[a+808>>2]&1|0)==0:0){f=0;break}f=za[c[f+88>>2]&1](a,b,d,i)|0;if(!(c[d>>2]|0)){xe(b);break}else{d=a+424|0;c[d>>2]=(c[d>>2]|0)+1;break}}else f=-22;while(0);l=j;return f|0}function Dd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((a|0)>0&(b|0)>0?(a+128|0)>>>0<(268435455/((b+128|0)>>>0)|0)>>>0:0)a=0;else a=-22;return a|0}function Ed(a,b){a=a|0;b=b|0;return 0}function Fd(a,b,c){a=a|0;b=b|0;c=c|0;return Gd(a,b,c)|0}function Gd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=a+8|0;if(!(c[k>>2]|0)){g=c[a+116>>2]|0;h=c[a+120>>2]|0;if((Dd(g,h,0,0)|0)>=0?(j=c[a+136>>2]|0,(j|0)>=0):0){f=b+64|0;e=b+68|0;if((c[f>>2]|0)>=1?(c[e>>2]|0)>=1:0)e=1;else{i=c[a+792>>2]|0;l=0-(0-(c[a+124>>2]|0)>>i)|0;c[f>>2]=(g|0)>(l|0)?g:l;i=0-(0-(c[a+128>>2]|0)>>i)|0;c[e>>2]=(h|0)>(i|0)?h:i;e=0}c[b+76>>2]=j;f=e;i=8}else e=-22}else{f=1;i=8}if((i|0)==8){e=qa[c[a+476>>2]&1](a,b,d)|0;if(!(c[k>>2]|f)){c[b+64>>2]=c[a+116>>2];c[b+68>>2]=c[a+120>>2]}}return e|0}function Hd(a,b,d){a=a|0;b=b|0;d=d|0;c[b+4>>2]=a;return Fd(a,c[b>>2]|0,d)|0}function Id(a,b){a=a|0;b=b|0;a=c[b>>2]|0;if(a|0)xe(a);return}function Jd(a){a=a|0;return}function Kd(a,b,c){a=a|0;b=b|0;c=c|0;return}function Ld(a){a=a|0;var b=0;b=a+8|0;c[b>>2]=0;c[b+4>>2]=-2147483648;b=a+16|0;c[b>>2]=0;c[b+4>>2]=-2147483648;b=a+64|0;c[b>>2]=-1;c[b+4>>2]=-1;b=a+72|0;c[b>>2]=0;c[b+4>>2]=0;b=a+32|0;c[a>>2]=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;return}function Md(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0;g=a+16|0;c[a+12>>2]=b;c[a+20>>2]=b+e;h=b+1|0;c[g>>2]=h;e=(d[b>>0]|0)<<18;c[a>>2]=e;f=b+2|0;c[g>>2]=f;e=(d[h>>0]|0)<<10|e;c[a>>2]=e;c[g>>2]=b+3;c[a>>2]=(d[f>>0]|0)<<2|e|2;c[a+4>>2]=510;return}function Nd(){if(!(c[650]|0)){Od();c[650]=1}return}function Od(){var b=0,c=0,e=0,f=0,g=0;b=0;while(1)if(b){f=(b&65280|0)==0;a[4741+b>>0]=(f?8:0)-(d[2334+(f?b:b>>>8)>>0]|0);b=b+1|0;if((b|0)==512){f=0;break}else continue}else{a[4741+b>>0]=9;b=1;continue}do{c=f<<1;b=0;do{g=a[1887+(f<<2)+b>>0]|0;e=(b<<7)+c|0;a[5253+(e|1)>>0]=g;a[5253+e>>0]=g;b=b+1|0}while((b|0)!=4);e=(d[2143+f>>0]|0)<<1;a[5765+(c+128)>>0]=e;a[5765+(c+129)>>0]=e|1;e=128-c|0;if(!f){b=0;c=1}else{c=(d[2207+f>>0]|0)<<1;b=(c|1)&255;c=c&255}a[5765+(e+-1)>>0]=c;a[5765+(e+-2)>>0]=b;f=f+1|0}while((f|0)!=64);b=6021;c=2271;e=b+63|0;do{a[b>>0]=a[c>>0]|0;b=b+1|0;c=c+1|0}while((b|0)<(e|0));return}function Pd(a,b){a=a|0;b=b|0;var e=0,f=0,g=0;e=a+8|0;g=c[e>>2]|0;f=c[a+16>>2]|0;a=(c[a>>2]|0)+(g>>>3)|0;a=(Mf(d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0)|0)<<(g&7)>>>(32-b|0);b=g+b|0;c[e>>2]=f>>>0>b>>>0?b:f;return a|0}function Qd(a,b){a=a|0;b=b|0;var e=0;e=c[a+8>>2]|0;a=(c[a>>2]|0)+(e>>>3)|0;return (Mf(d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0)|0)<<(e&7)>>>(32-b|0)|0}function Rd(a,b){a=a|0;b=b|0;var d=0;d=a+8|0;a=c[a+16>>2]|0;b=(c[d>>2]|0)+b|0;c[d>>2]=a>>>0>b>>>0?b:a;return}function Sd(a){a=a|0;var b=0,e=0,f=0;e=a+8|0;f=c[e>>2]|0;b=(d[(c[a>>2]|0)+(f>>>3)>>0]|0)<<(f&7)>>>7&1;c[e>>2]=((f|0)<(c[a+16>>2]|0)&1)+f;return b|0}function Td(a,b){a=a|0;b=b|0;var c=0;do if(b)if((b|0)<26){a=Pd(a,b)|0;break}else{b=b+-16|0;c=(Pd(a,16)|0)<>>0>65535;e=b?e>>>16:e;b=b?16:0;c=(e&65280|0)==0;b=31-(d[2334+(c?e:e>>>8)>>0]|0)-(c?b:b|8)|0;Wd(a,b);return (Td(a,b+1|0)|0)+-1|0}function Vd(a){a=a|0;var b=0,d=0;b=l;l=l+32|0;d=b;c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];c[d+12>>2]=c[a+12>>2];c[d+16>>2]=c[a+16>>2];a=Td(d,32)|0;l=b;return a|0}function Wd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+8|0;e=c[d>>2]|0;f=0-e|0;a=(c[a+16>>2]|0)-e|0;c[d>>2]=((b|0)<(f|0)?f:(a|0)<(b|0)?a:b)+e;return}function Xd(a){a=a|0;a=Ud(a)|0;return ((a&1|0)==0?0-(a>>>1)|0:(a+1|0)>>>1)|0}function Yd(a){a=a|0;var b=0,d=0;d=(c[44]|0)+-32|0;b=a;while(1){if(d>>>0>>0){a=0;break}a=qf(b)|0;if((b|0)!=0|(a|0)!=0)break;else b=1}return a|0}function Zd(a,b){a=a|0;b=b|0;if(((c[44]|0)+-32|0)>>>0>>0)a=0;else a=yf(a,((b|0)==0&1)+b|0)|0;return a|0}function _d(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;f=g;if(!(($d(d,b,f)|0)==0?(f=c[f>>2]|0,e=Zd(a,f)|0,!((f|0)!=0&(e|0)==0)):0)){ae(a);e=0}l=g;return e|0}function $d(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=R(b,a)|0;if((a|0)!=0&(b|a)>>>0>65535?((e>>>0)/(a>>>0)|0|0)!=(b|0):0)a=-22;else{c[d>>2]=e;a=0}return a|0}function ae(a){a=a|0;wf(a);return}function be(a){a=a|0;ae(c[a>>2]|0);c[a>>2]=0;return}function ce(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)!=0?(2147483647/(c>>>0)|0)>>>0>b>>>0:0)a=Zd(a,R(c,b)|0)|0;else a=0;return a|0}function de(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=_d(c[a>>2]|0,b,d)|0;c[a>>2]=e;return ((d|0)!=0&((b|0)!=0&(e|0)==0)?-12:0)|0}function ee(a){a=a|0;var b=0;b=Yd(a)|0;if(b|0)Kf(b|0,0,a|0)|0;return b|0}function fe(a,b,c){a=a|0;b=b|0;c=c|0;ge(a,b,c);return}function ge(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((c[b>>2]|0)>>>0<=d>>>0){e=((d*17|0)>>>4)+32|0;d=e>>>0>d>>>0?e:d;ae(c[a>>2]|0);e=Yd(d)|0;c[a>>2]=e;c[b>>2]=(e|0)==0?0:d}return}function he(a,b){a=a|0;b=b|0;if((b|0)!=0?(2147483647/(b>>>0)|0)>>>0>a>>>0:0)a=Yd(R(b,a)|0)|0;else a=0;return a|0}function ie(a,b){a=a|0;b=b|0;if((b|0)!=0?(2147483647/(b>>>0)|0)>>>0>a>>>0:0)a=ee(R(b,a)|0)|0;else a=0;return a|0}function je(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=l;l=l+16|0;h=j;g=ee(24)|0;c[h>>2]=g;i=g;do if(g){c[g>>2]=a;c[g+4>>2]=b;c[g+12>>2]=d|0?d:7;c[g+16>>2]=e;c[g+8>>2]=1;if(f&1|0){g=g+20|0;c[g>>2]=c[g>>2]|1}d=ee(12)|0;if(!d){be(h);d=0;break}else{c[d>>2]=i;c[d+4>>2]=a;c[d+8>>2]=b;break}}else d=0;while(0);l=j;return d|0}function ke(a,b){a=a|0;b=b|0;ae(b);return}function le(a){a=a|0;var b=0,d=0,e=0;e=l;l=l+16|0;d=e;b=Yd(a)|0;c[d>>2]=b;if(b){a=je(b,a,7,0,0)|0;if(!a){be(d);a=0}}else a=0;l=e;return a|0}function me(a){a=a|0;var b=0;b=le(a)|0;if(!b)b=0;else Kf(c[b+4>>2]|0,0,a|0)|0;return b|0}function ne(a){a=a|0;var b=0;b=ee(12)|0;if(!b)b=0;else{c[b>>2]=c[a>>2];c[b+4>>2]=c[a+4>>2];c[b+8>>2]=c[a+8>>2];oe((c[a>>2]|0)+8|0,1)|0}return b|0}function oe(a,b){a=a|0;b=b|0;var d=0;d=c[a>>2]|0;c[a>>2]=d+b;return d+b|0}function pe(a){a=a|0;var b=0,d=0,e=0,f=0;f=l;l=l+16|0;d=f;if((a|0?(e=c[a>>2]|0,e|0):0)?(b=c[e>>2]|0,c[d>>2]=b,be(a),b,(oe(b+8|0,-1)|0)==0):0){va[c[b+12>>2]&7](c[b+16>>2]|0,c[b>>2]|0);be(d)}l=f;return}function qe(a,b,d){a=a|0;b=b|0;d=d|0;a=a+360|0;c[a>>2]=b;c[a+4>>2]=d;return}function re(a,b,d){a=a|0;b=b|0;d=d|0;a=a+376|0;c[a>>2]=b;c[a+4>>2]=d;return}function se(a,b,d){a=a|0;b=b|0;d=d|0;a=a+368|0;c[a>>2]=b;c[a+4>>2]=d;return}function te(a,b){a=a|0;b=b|0;c[a+392>>2]=b;return}function ue(){var a=0;a=ee(400)|0;if(!a)a=0;else ve(a);return a|0}function ve(a){a=a|0;var b=0;Kf(a|0,0,400)|0;b=a+136|0;c[b>>2]=0;c[b+4>>2]=-2147483648;b=a+144|0;c[b>>2]=0;c[b+4>>2]=-2147483648;b=a+128|0;c[b>>2]=0;c[b+4>>2]=-2147483648;qe(a,0,-2147483648);re(a,0,0);se(a,-1,-1);te(a,-1);c[a+80>>2]=1;c[a+120>>2]=0;c[a+124>>2]=1;c[a+76>>2]=-1;c[a+344>>2]=2;c[a+348>>2]=2;c[a+352>>2]=2;c[a+340>>2]=0;c[a+356>>2]=0;return}function we(a){a=a|0;var b=0;if(a|0?(b=c[a>>2]|0,b|0):0){xe(b);be(a)}return}function xe(a){a=a|0;var b=0;b=0;do{pe(a+304+(b<<2)|0);b=b+1|0}while((b|0)!=8);ve(a);return}function ye(a,b){a=a|0;b=b|0;Pf(a|0,b|0,400)|0;Kf(b|0,0,400)|0;ve(b);return}function ze(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;c[a+76>>2]=c[b+76>>2];c[a+64>>2]=c[b+64>>2];c[a+68>>2]=c[b+68>>2];c[a+388>>2]=c[b+388>>2];h=b+296|0;g=c[h+4>>2]|0;d=a+296|0;c[d>>2]=c[h>>2];c[d+4>>2]=g;c[a+72>>2]=c[b+72>>2];d=c[b+304>>2]|0;if(!d)oa();else{f=0;e=d}while(1){if(e|0?(h=ne(e)|0,c[a+304+(f<<2)>>2]=h,(h|0)==0):0){e=5;break}d=f+1|0;if(d>>>0>=8){e=8;break}f=d;e=c[b+304+(d<<2)>>2]|0}if((e|0)==5){xe(a);d=-12}else if((e|0)==8){c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];c[a+28>>2]=c[b+28>>2];d=a+32|0;h=b+32|0;c[d>>2]=c[h>>2];c[d+4>>2]=c[h+4>>2];c[d+8>>2]=c[h+8>>2];c[d+12>>2]=c[h+12>>2];c[d+16>>2]=c[h+16>>2];c[d+20>>2]=c[h+20>>2];c[d+24>>2]=c[h+24>>2];c[d+28>>2]=c[h+28>>2];d=0}return d|0}function Ae(a){a=a|0;var b=0,d=0;b=0;while(1){if((c[180+(b*24|0)>>2]|0)==(a|0)){d=3;break}b=b+1|0;if(b>>>0>=4){b=0;break}}if((d|0)==3)b=180+(b*24|0)+4|0;return b|0}function Be(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=(c[b+24>>2]|0)==0?1:3;do if((f|0)<=(e|0))if((f|0)==(e|0)&(a[b+29>>0]|0)!=0){f=c[b+12>>2]|0;c[d>>2]=c[f+32>>2];f=c[f>>2]|0;break}else{c[d>>2]=0;f=0;break}else{f=c[b+8>>2]|0;c[d>>2]=c[f+32+(e<<2)>>2];f=c[f+(e<<2)>>2]|0}while(0);return f|0}function Ce(d,e){d=d|0;e=e|0;var f=0;if(!(c[d+8>>2]|0))d=-1;else{c[e>>2]=c[d+16>>2];c[e+4>>2]=c[d+20>>2];a[e+8>>0]=c[d+24>>2];f=a[d+31>>0]|0;a[e+9>>0]=(a[d+29>>0]|0)!=0&f<<24>>24==0&1;a[e+12>>0]=a[d+33>>0]|0;a[e+13>>0]=f;a[e+14>>0]=a[d+32>>0]|0;a[e+10>>0]=c[d+36>>2];a[e+11>>0]=a[d+30>>0]|0;a[e+15>>0]=a[d+34>>0]|0;b[e+16>>1]=b[d+48>>1]|0;d=0}return d|0}function De(b,d){b=b|0;d=d|0;var e=0,f=0;if((c[b+8>>2]|0)!=0?(f=b+68|0,(a[f>>0]|0)==0):0){e=Ee(b,d)|0;if(!e){a[f>>0]=1;c[b+72>>2]=d;c[b+92>>2]=Be(b,b+108|0,0)|0;if(!(c[b+24>>2]|0))e=1;else{c[b+96>>2]=Be(b,b+112|0,1)|0;c[b+100>>2]=Be(b,b+116|0,2)|0;e=3}if(!(a[b+29>>0]|0))e=0;else e=Be(b,b+120|0,e)|0;c[b+104>>2]=e;c[b+80>>2]=0;e=0}}else e=-1;return e|0}function Ee(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0;if(e>>>0>1)e=-1;else{a[b+76>>0]=(e|0)==1&1;g=b+77|0;a[g>>0]=0;a[b+78>>0]=0;h=b+24|0;if(((c[h>>2]|0)+-1|0)>>>0<2?(e=b+16|0,i=c[e>>2]|0,f=b+84|0,c[f>>2]=(i+1|0)/2|0,c[b+88>>2]=((c[b+20>>2]|0)+1|0)/2|0,c[b+124>>2]=Yd(i<<1)|0,c[b+128>>2]=Yd(c[e>>2]<<1)|0,c[b+196>>2]=Yd((c[f>>2]<<1)+14|0)|0,(c[h>>2]|0)==1):0){e=0;do{c[b+132+(e<<2)>>2]=Yd(c[f>>2]<<1)|0;c[b+164+(e<<2)>>2]=Yd(c[f>>2]<<1)|0;e=e+1|0}while((e|0)!=8)}e=b+36|0;Fe(b+200|0,d[b+30>>0]|0,a[g>>0]|0?16:8,c[e>>2]|0,d[b+32>>0]|0);if(!(c[h>>2]|0))e=7;else e=c[276+(c[e>>2]<<2)>>2]|0;c[b+248>>2]=e;e=0}return e|0}function Fe(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0;n=30-d|0;g=+((1<>2]=Df(i*(q*2.0))|0;o=1.0-g;p=o-h;c[a+24>>2]=Df(i*(g*2.0*o/p))|0;c[a+28>>2]=Df(i*(h*2.0*q/p))|0;c[a+32>>2]=Df(i*(o*2.0))|0}d=Df(j)|0;c[a+8>>2]=d;c[a>>2]=n;e=1<>2]=e;c[a+36>>2]=1<>2]=d;c[a+16>>2]=e;c[a+40>>2]=b;c[a+44>>2]=f;return}function Ge(d,f,g,h,i,j,k){d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0;if((c[d+40>>2]|0)==8?(c[d+44>>2]|0)==0:0){if((j|0)>0){h=0;i=f;while(1){p=b[g+(h<<1)>>1]&255;a[i>>0]=p;a[i+1>>0]=p;a[i+2>>0]=p;h=h+1|0;if((h|0)==(j|0))break;else i=i+k|0}}}else l=5;if((l|0)==5?(m=c[d+12>>2]|0,n=c[d+16>>2]|0,o=c[d>>2]|0,(j|0)>0):0){h=0;while(1){p=(He((R(e[g+(h<<1)>>1]|0,m)|0)+n>>o)|0)&255;a[f>>0]=p;a[f+1>>0]=p;a[f+2>>0]=p;h=h+1|0;if((h|0)==(j|0))break;else f=f+k|0}}return}function He(a){a=a|0;return ((a|0)<0?0:(a|0)<255?a:255)|0}function Ie(b,d,f,g,h,i,j){b=b|0;d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;s=c[b+20>>2]|0;m=c[b+24>>2]|0;n=c[b+28>>2]|0;o=c[b+32>>2]|0;p=c[b+12>>2]|0;q=c[b+16>>2]|0;r=c[b>>2]|0;l=c[b+36>>2]|0;if((i|0)>0){k=0;b=d;while(1){t=R(e[f+(k<<1)>>1]|0,p)|0;d=(e[g+(k<<1)>>1]|0)-l|0;u=(e[h+(k<<1)>>1]|0)-l|0;t=t+q|0;a[b>>0]=He(t+(R(u,s)|0)>>r)|0;a[b+1>>0]=He(t-((R(u,n)|0)+(R(d,m)|0))>>r)|0;a[b+2>>0]=He(t+(R(d,o)|0)>>r)|0;k=k+1|0;if((k|0)==(i|0))break;else b=b+j|0}}return}function Je(d,f,g,h,i,j,k){d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0;if((c[d+40>>2]|0)==8?(c[d+44>>2]|0)==0:0){if((j|0)>0){l=0;m=f;while(1){a[m>>0]=b[i+(l<<1)>>1];a[m+1>>0]=b[g+(l<<1)>>1];a[m+2>>0]=b[h+(l<<1)>>1];l=l+1|0;if((l|0)==(j|0))break;else m=m+k|0}}}else n=5;if((n|0)==5?(o=c[d+12>>2]|0,p=c[d+16>>2]|0,q=c[d>>2]|0,(j|0)>0):0){l=0;while(1){a[f>>0]=He((R(e[i+(l<<1)>>1]|0,o)|0)+p>>q)|0;a[f+1>>0]=He((R(e[g+(l<<1)>>1]|0,o)|0)+p>>q)|0;a[f+2>>0]=He((R(e[h+(l<<1)>>1]|0,o)|0)+p>>q)|0;l=l+1|0;if((l|0)==(j|0))break;else f=f+k|0}}return}function Ke(b,d,f,g,h,i,j){b=b|0;d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;o=c[b+12>>2]|0;m=c[b+16>>2]|0;n=c[b>>2]|0;l=c[b+36>>2]|0;if((i|0)>0){k=0;b=d;while(1){q=e[f+(k<<1)>>1]|0;r=(e[g+(k<<1)>>1]|0)-l|0;d=(e[h+(k<<1)>>1]|0)-l|0;p=q-r|0;a[b>>0]=He((R(p+d|0,o)|0)+m>>n)|0;a[b+1>>0]=He((R(r+q|0,o)|0)+m>>n)|0;a[b+2>>0]=He((R(p-d|0,o)|0)+m>>n)|0;k=k+1|0;if((k|0)==(i|0))break;else b=b+j|0}}return}function Le(a,b,d){a=a|0;b=b|0;d=d|0;c[b>>2]=0;c[d>>2]=1;return}function Me(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;p=b+80|0;r=c[p>>2]|0;a:do if(r>>>0<(c[b+20>>2]|0)>>>0){s=c[b+16>>2]|0;n=(c[b+92>>2]|0)+(R(c[b+108>>2]|0,r)|0)|0;o=b+76|0;if(!(a[o>>0]|0))q=a[b+78>>0]|0?4:3;else q=4;switch(c[b+24>>2]|0){case 0:{sa[c[b+248>>2]&7](b+200|0,e,n,0,0,s,q);break}case 1:{if(!r){h=b+96|0;i=b+112|0;j=b+100|0;k=b+116|0;l=b+84|0;m=b+88|0;g=0;do{f=(g|0)>4?g+-8|0:g;if((f|0)<0)f=0;else{t=c[m>>2]|0;f=(f|0)<(t|0)?f:t+-1|0}u=(c[h>>2]|0)+(R(c[i>>2]|0,f)|0)|0;t=(c[j>>2]|0)+(R(c[k>>2]|0,f)|0)|0;Pf(c[b+132+(g<<2)>>2]|0,u|0,c[l>>2]<<1|0)|0;Pf(c[b+164+(g<<2)>>2]|0,t|0,c[l>>2]<<1|0)|0;g=g+1|0}while((g|0)!=8)}f=r>>1;g=(f|0)%8|0;u=r&1;h=b+124|0;l=b+196|0;m=b+30|0;t=b+28|0;Ne(c[h>>2]|0,b+132|0,s,g,c[l>>2]|0,d[m>>0]|0,u,d[t>>0]|0);i=b+128|0;Ne(c[i>>2]|0,b+164|0,s,g,c[l>>2]|0,d[m>>0]|0,u,d[t>>0]|0);if(u|0){m=(g+5|0)%8|0;l=f+5|0;t=c[b+88>>2]|0;t=(l|0)<(t|0)?l:t+-1|0;l=(c[b+96>>2]|0)+(R(t,c[b+112>>2]|0)|0)|0;t=(c[b+100>>2]|0)+(R(c[b+116>>2]|0,t)|0)|0;u=b+84|0;Pf(c[b+132+(m<<2)>>2]|0,l|0,c[u>>2]<<1|0)|0;Pf(c[b+164+(m<<2)>>2]|0,t|0,c[u>>2]<<1|0)|0}sa[c[b+248>>2]&7](b+200|0,e,n,c[h>>2]|0,c[i>>2]|0,s,q);break}case 2:{u=(c[b+96>>2]|0)+(R(c[b+112>>2]|0,r)|0)|0;j=(c[b+100>>2]|0)+(R(c[b+116>>2]|0,r)|0)|0;t=b+124|0;k=b+30|0;l=b+28|0;m=b+196|0;Oe(c[t>>2]|0,u,s,d[k>>0]|0,d[l>>0]|0,c[m>>2]|0);u=b+128|0;Oe(c[u>>2]|0,j,s,d[k>>0]|0,d[l>>0]|0,c[m>>2]|0);sa[c[b+248>>2]&7](b+200|0,e,n,c[t>>2]|0,c[u>>2]|0,s,q);break}case 3:{t=(c[b+96>>2]|0)+(R(c[b+112>>2]|0,r)|0)|0;u=(c[b+100>>2]|0)+(R(c[b+116>>2]|0,r)|0)|0;sa[c[b+248>>2]&7](b+200|0,e,n,t,u,s,q);break}default:{f=-1;break a}}do if(!(a[b+31>>0]|0)){if(a[o>>0]|0){if(!(a[b+29>>0]|0)){Qe(e+3|0,s);break}Re(b+200|0,e+3|0,(c[b+104>>2]|0)+(R(c[b+120>>2]|0,r)|0)|0,s);if(a[b+33>>0]|0)Se(e,s)}}else{Pe(b+200|0,e,(c[b+104>>2]|0)+(R(c[b+120>>2]|0,r)|0)|0,s,q);if(a[o>>0]|0)Qe(e+3|0,s)}while(0);c[p>>2]=(c[p>>2]|0)+1;f=0}else f=-1;while(0);return f|0}function Ne(a,d,f,g,h,i,j,k){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;n=c[d+((g+5&7)<<2)>>2]|0;o=c[d+((g+6&7)<<2)>>2]|0;p=c[d+((g+7&7)<<2)>>2]|0;q=c[d+((g&7)<<2)>>2]|0;r=c[d+((g+1&7)<<2)>>2]|0;s=c[d+((g+2&7)<<2)>>2]|0;g=c[d+((g+3&7)<<2)>>2]|0;l=i+-8|0;m=1<>1;t=(f+1|0)/2|0;d=(f|0)>0;if(!j){if(d){d=0;do{u=R(e[o+(d<<1)>>1]|0,-6)|0;j=R(e[r+(d<<1)>>1]|0,-10)|0;b[h+(d+3<<1)>>1]=((e[n+(d<<1)>>1]|0)<<1)+m+u+((e[p+(d<<1)>>1]|0)*18|0)+((e[q+(d<<1)>>1]|0)*57|0)+j+((e[s+(d<<1)>>1]|0)<<2)-(e[g+(d<<1)>>1]|0)>>l;d=d+1|0}while((d|0)<(t|0))}}else if(d){d=0;do{j=R(e[p+(d<<1)>>1]|0,-10)|0;u=R(e[s+(d<<1)>>1]|0,-6)|0;b[h+(d+3<<1)>>1]=m-(e[n+(d<<1)>>1]|0)+((e[o+(d<<1)>>1]|0)<<2)+j+((e[q+(d<<1)>>1]|0)*57|0)+((e[r+(d<<1)>>1]|0)*18|0)+u+((e[g+(d<<1)>>1]|0)<<1)>>l;d=d+1|0}while((d|0)<(t|0))}m=h+6|0;g=b[m>>1]|0;d=0;do{b[h+(d<<1)>>1]=g;d=d+1|0}while((d|0)!=3);l=t+3|0;g=b[h+(t+2<<1)>>1]|0;d=0;do{b[h+(l+d<<1)>>1]=g;d=d+1|0}while((d|0)!=4);if(!k)Ye(a,m,f,i);else Ze(a,m,f,i);return}function Oe(a,c,d,e,f,g){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;j=(d+1|0)/2|0;k=g+6|0;Pf(k|0,c|0,j<<1|0)|0;i=b[c>>1]|0;h=0;do{b[g+(h<<1)>>1]=i;h=h+1|0}while((h|0)!=3);i=b[c+(j+-1<<1)>>1]|0;c=j+3|0;h=0;do{b[g+(c+h<<1)>>1]=i;h=h+1|0}while((h|0)!=4);if(!f)Ve(a,k,d,e);else We(a,k,d,e);return}function Pe(b,f,g,h,i){b=b|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0;k=c[b+40>>2]|0;l=1<0){j=0;b=f;while(1){m=e[g+(j<<1)>>1]|0;a[b>>0]=(R(d[b>>0]|0,m)|0)+l>>k;f=b+1|0;a[f>>0]=(R(d[f>>0]|0,m)|0)+l>>k;f=b+2|0;a[f>>0]=(R(d[f>>0]|0,m)|0)+l>>k;j=j+1|0;if((j|0)==(h|0))break;else b=b+i|0}}return}function Qe(b,c){b=b|0;c=c|0;var d=0;if((c|0)>0){d=0;while(1){a[b>>0]=-1;d=d+1|0;if((d|0)==(c|0))break;else b=b+4|0}}return}function Re(d,f,g,h){d=d|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0;if((c[d+40>>2]|0)==8){if((h|0)>0){d=0;while(1){a[f>>0]=b[g+(d<<1)>>1];d=d+1|0;if((d|0)==(h|0))break;else f=f+4|0}}}else{j=c[d+8>>2]|0;k=c[d+4>>2]|0;i=c[d>>2]|0;if((h|0)>0){d=0;while(1){a[f>>0]=(R(e[g+(d<<1)>>1]|0,j)|0)+k>>i;d=d+1|0;if((d|0)==(h|0))break;else f=f+4|0}}}return}function Se(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;if(!(c[651]|0)){c[651]=1;Te()}if((e|0)>0){h=0;while(1){g=a[b+3>>0]|0;f=g&255;if(!(g<<24>>24)){a[b>>0]=-1;a[b+1>>0]=-1;g=b+2|0;f=-1}else{i=c[2608+(f<<2)>>2]|0;a[b>>0]=Ue(d[b>>0]|0,f,i)|0;j=b+1|0;a[j>>0]=Ue(d[j>>0]|0,f,i)|0;j=b+2|0;g=j;f=(Ue(d[j>>0]|0,f,i)|0)&255}a[g>>0]=f;h=h+1|0;if((h|0)==(e|0))break;else b=b+4|0}}return}function Te(){var a=0;a=1;do{c[2608+(a<<2)>>2]=(((a|0)/2|0)+16711808|0)/(a|0)|0;a=a+1|0}while((a|0)!=256);return}function Ue(a,b,c){a=a|0;b=b|0;c=c|0;c=((R(c,a)|0)+32768|0)>>>16;return (a>>>0>>0?c:255)|0}function Ve(a,c,d,f){a=a|0;c=c|0;d=d|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;i=(1<1){l=d+-2|0;k=l>>>1;j=k+1|0;k=k<<1;h=k+2|0;g=c;f=a;while(1){b[f>>1]=b[g>>1]|0;n=R((e[g+4>>1]|0)+(e[g+-2>>1]|0)|0,-11)|0;m=g;g=g+2|0;b[f+2>>1]=Xe(32-(e[m+-6>>1]|0)-(e[m+8>>1]|0)+((e[m+6>>1]|0)+(e[m+-4>>1]|0)<<2)+n+(((e[g>>1]|0)+(e[m>>1]|0)|0)*40|0)>>6,i)|0;d=d+-2|0;if((d|0)<=1)break;else f=f+4|0}a=a+(h<<1)|0;f=c+(j<<1)|0;d=l-k|0}else f=c;if(d|0)b[a>>1]=b[f>>1]|0;return}function We(a,c,d,f){a=a|0;c=c|0;d=d|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=(1<>1]|0;g=e[c+-4>>1]|0;j=e[c+-2>>1]|0;h=e[c>>1]|0;f=e[c+2>>1]|0;i=e[c+4>>1]|0;if((d|0)>1){q=d+-2|0;p=q>>>1;r=p<<1;o=r+2|0;p=p+1|0;n=h;l=a;m=c;while(1){h=e[m+6>>1]|0;t=n*57|0;b[l>>1]=Xe((k<<1)+32+(R(g,-6)|0)+(j*18|0)+t+(R(f,-10)|0)+(i<<2)-h>>6,s)|0;b[l+2>>1]=Xe(32-k+(g<<2)+(R(j,-10)|0)+t+(f*18|0)+(R(i,-6)|0)+(h<<1)>>6,s)|0;d=d+-2|0;if((d|0)<=1)break;else{t=i;l=l+4|0;m=m+2|0;i=h;k=g;g=j;j=n;n=f;f=t}}m=h;h=f;l=n;a=a+(o<<1)|0;c=c+(p<<1)|0;f=q-r|0}else{m=i;i=f;l=j;j=g;g=k;f=d}if(f|0)b[a>>1]=Xe((g<<1)+32+(R(j,-6)|0)+(l*18|0)+(h*57|0)+(R(i,-10)|0)+(m<<2)-(e[c+6>>1]|0)>>6,s)|0;return}function Xe(a,b){a=a|0;b=b|0;return ((a|0)<0?0:(a|0)>(b|0)?b:a)|0}function Ye(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;m=(1<>1;i=20-e|0;g=1<1){k=d+-2|0;l=k>>>1;j=l+1|0;l=l<<1;h=l+2|0;f=c;e=a;while(1){b[e>>1]=Xe((b[f>>1]|0)+o>>n,m)|0;q=R((b[f+4>>1]|0)+(b[f+-2>>1]|0)|0,-11)|0;p=f;f=f+2|0;b[e+2>>1]=Xe(g-(b[p+-6>>1]|0)-(b[p+8>>1]|0)+((b[p+6>>1]|0)+(b[p+-4>>1]|0)<<2)+q+(((b[f>>1]|0)+(b[p>>1]|0)|0)*40|0)>>i,m)|0;d=d+-2|0;if((d|0)<=1)break;else e=e+4|0}a=a+(h<<1)|0;e=c+(j<<1)|0;d=k-l|0}else e=c;if(d|0)b[a>>1]=Xe((b[e>>1]|0)+o>>n,m)|0;return}function Ze(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=(1<>1]|0;f=b[c+-4>>1]|0;i=b[c+-2>>1]|0;g=b[c>>1]|0;e=b[c+2>>1]|0;h=b[c+4>>1]|0;if((d|0)>1){p=d+-2|0;o=p>>>1;q=o<<1;n=q+2|0;o=o+1|0;m=g;k=a;l=c;while(1){g=b[l+6>>1]|0;u=m*57|0;b[k>>1]=Xe((j<<1)+s+(R(f,-6)|0)+(i*18|0)+u+(R(e,-10)|0)+(h<<2)-g>>r,t)|0;b[k+2>>1]=Xe(s-j+(f<<2)+(R(i,-10)|0)+u+(e*18|0)+(R(h,-6)|0)+(g<<1)>>r,t)|0;d=d+-2|0;if((d|0)<=1)break;else{u=h;k=k+4|0;l=l+2|0;h=g;j=f;f=i;i=m;m=e;e=u}}l=g;g=e;k=m;a=a+(n<<1)|0;c=c+(o<<1)|0;e=p-q|0}else{l=h;h=e;k=i;i=f;f=j;e=d}if(e|0)b[a>>1]=Xe((f<<1)+s+(R(i,-6)|0)+(k*18|0)+(g*57|0)+(R(h,-10)|0)+(l<<2)-(b[c+6>>1]|0)>>r,t)|0;return}function _e(){return ee(252)|0}function $e(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=l;l=l+48|0;v=y;h=af(v,f,g,d[e+40>>0]|0)|0;do if((h|0)>=0){x=c[v>>2]|0;q=c[v+4>>2]|0;m=a[v+12>>0]|0;r=m&255;n=c[v+24>>2]|0;o=a[v+13>>0]|0;s=o&255;t=e+16|0;c[t>>2]=x;u=e+20|0;c[u>>2]=q;i=c[v+8>>2]|0;j=e+24|0;c[j>>2]=i;switch(i|0){case 5:{i=2;p=4;break}case 4:{i=1;p=4;break}default:{k=1;j=i}}if((p|0)==4){c[j>>2]=i;k=0;j=i}a[e+28>>0]=k;a[e+29>>0]=m;a[e+33>>0]=a[v+15>>0]|0;a[e+31>>0]=a[v+14>>0]|0;a[e+32>>0]=a[v+16>>0]|0;c[e+36>>2]=n;a[e+30>>0]=o;a[e+34>>0]=a[v+17>>0]|0;b[e+48>>1]=b[v+18>>1]|0;b[e+50>>1]=b[v+20>>1]|0;b[e+52>>1]=b[v+22>>1]|0;i=e+44|0;c[i>>2]=c[v+32>>2];if(((((c[v+28>>2]|0)+h|0)>>>0<=g>>>0?(bf(e,f+h|0,g-h|0,x,q,j,s,r)|0)>=0:0)?(cf(e),w=c[e+8>>2]|0,(c[w+64>>2]|0)>=(c[t>>2]|0)):0)?(c[w+68>>2]|0)>=(c[u>>2]|0):0){c[e+80>>2]=-1;h=0;break}we(e+8|0);we(e+12|0);c[i>>2]=0;h=-1}while(0);l=y;return h|0}function af(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;J=l;l=l+32|0;x=J+20|0;A=J+16|0;C=J+8|0;D=J+12|0;E=J+4|0;F=J;a:do if(((((((f|0)>=6?(a[e>>0]|0)==66:0)?(a[e+1>>0]|0)==80:0)?(a[e+2>>0]|0)==71:0)?(a[e+3>>0]|0)==-5:0)?(H=a[e+4>>0]|0,h=H&255,n=h>>>5,c[d+8>>2]=n,(H&255)<=191):0)?(H=(h&15)+8|0,a[d+13>>0]=H,H>>>0<=14):0){o=a[e+5>>0]|0;z=o&255;p=z>>>4;c[d+24>>2]=p;w=z&8;i=z>>>2&1;a[d+16>>0]=z>>>1&1;G=d+17|0;a[G>>0]=z&1;z=d+18|0;b[z>>1]=0;H=d+20|0;b[H>>1]=0;B=d+22|0;b[B>>1]=0;j=d+12|0;a[j>>0]=0;k=d+14|0;a[k>>0]=0;m=d+15|0;a[m>>0]=0;if(!(h&16))if(!i)h=0;else{a[j>>0]=1;a[k>>0]=1;h=1}else{a[j>>0]=1;a[m>>0]=i;h=0}if(((((((o&255)<=79?(p|0)==0&h<<24>>24==0|(n|0)!=0:0)?(q=mf(d,e+6|0,f+-6|0)|0,(q|0)>=0):0)?(r=q+6|0,s=d+4|0,t=mf(s,e+r|0,f-r|0)|0,(t|0)>=0):0)?(u=t+r|0,(c[d>>2]|0)!=0):0)?(c[s>>2]|0)!=0:0)?(I=d+28|0,v=mf(I,e+u|0,f-u|0)|0,(v|0)>=0):0){h=v+u|0;c[x>>2]=0;b:do if(!w){c[d+32>>2]=0;y=43}else{i=mf(x,e+h|0,f-h|0)|0;if((i|0)<0){h=-1;break a}h=i+h|0;i=d+32|0;c[i>>2]=0;r=(c[x>>2]|0)+h|0;if((r|0)>(f|0)){h=-1;break a}q=(g|0)!=0;if(!q?(a[G>>0]|0)==0:0){h=r;break}if((r|0)<=(h|0)){y=43;break}while(1){j=nf(A,e+h|0,r-h|0)|0;if((j|0)<0){h=-1;break a}h=j+h|0;j=mf(C,e+h|0,r-h|0)|0;if((j|0)<0){h=-1;break a}n=j+h|0;o=c[C>>2]|0;h=o+n|0;if(h>>>0>r>>>0){h=-1;break a}p=c[A>>2]|0;if((a[G>>0]|0)!=0&(p|0)==5){j=mf(D,e+n|0,r-n|0)|0;if((j|0)<0)break;j=j+n|0;k=mf(E,e+j|0,r-j|0)|0;if((k|0)<0)break;y=k+j|0;if((mf(F,e+y|0,r-y|0)|0)<0)break;j=c[E>>2]|0;k=c[F>>2]|0;if((j|0)==0|(k|0)==0)break;if((j&65535|0)!=(j|0))break;if((k&65535|0)!=(k|0))break;m=c[D>>2]|0;if((m&65535|0)!=(m|0))break;b[z>>1]=m;b[H>>1]=j;b[B>>1]=k}if(q){x=Yd(16)|0;c[x>>2]=p;g=x+4|0;c[g>>2]=o;y=x+12|0;c[y>>2]=0;c[i>>2]=x;i=Yd(o)|0;c[x+8>>2]=i;Pf(i|0,e+n|0,c[g>>2]|0)|0;i=y}if((r|0)<=(h|0)){y=43;break b}}h=-1;break a}while(0);if((y|0)==43)if((a[G>>0]|0)!=0?(b[H>>1]|0)==0:0){h=-1;break}if(!(c[I>>2]|0))c[I>>2]=f-h}else h=-1}else h=-1;while(0);l=J;return h|0}function bf(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0;o=l;l=l+32|0;k=o+12|0;m=o;df(k);df(m);if(i){i=ef(k,a+12|0,a+4|0,b,d,e,f,0,h)|0;if((i|0)<0)i=-1;else{j=b+i|0;b=d-i|0;n=4}}else{j=b;b=d;n=4}if((n|0)==4){i=ef(m,a+8|0,a,j,b,e,f,g,h)|0;if((i|0)<0)i=-1;else{n=b-i|0;i=ff(a,k,m,j+i|0,n)|0;ae(c[k>>2]|0);ae(c[m>>2]|0);i=(i|0)<0?-1:d-n+i|0}}l=o;return i|0}function cf(a){a=a|0;var b=0,d=0;b=a+4|0;d=c[b>>2]|0;if(d|0){wd(d)|0;ae(c[b>>2]|0);c[b>>2]=0}b=c[a>>2]|0;if(b|0){wd(b)|0;ae(c[a>>2]|0);c[a>>2]=0}return}function df(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return}function ef(a,b,d,e,f,g,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+16|0;p=q+8|0;k=q+4|0;m=q;e=kf(k,m,e,f,g,h,i,j)|0;do if((((e|0)>=0?(k=c[k>>2]|0,m=lf(a,k,c[m>>2]|0)|0,ae(k),(m|0)>=0):0)?(n=Bd(64)|0,(n|0)!=0):0)?(m=ue()|0,c[p>>2]=m,o=m,(m|0)!=0):0){m=n+688|0;c[m>>2]=c[m>>2]|1;if((vd(n,64,0)|0)<0){we(p);e=-1;break}else{c[d>>2]=n;c[b>>2]=o;break}}else e=-1;while(0);l=q;return e|0}function ff(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=l;l=l+16|0;u=y;x=b+4|0;i=c[x>>2]|0;v=(i|0)!=0;c[u>>2]=0;c[u+4>>2]=0;a:do if((h|0)>0){s=u+((v&1)<<2)|0;m=1;i=h;while(1){if((i|0)<((m?5:2)|0)){i=-1;break a}if(m)k=0;else k=(a[g+2>>0]|0)==0?4:3;if((i|0)<(k+3|0)){i=-1;break a}q=g+k|0;r=d[q>>0]|0;n=r<<5&32|(d[g+(k+1)>>0]|0)>>>3;r=r>>>1;j=r&63;if(j>>>0>40|((r&60|0)==32|(j|0)==39)){if(c[u>>2]|0?c[s>>2]|0:0)break}else if((j>>>0<10|(j+-16|0)>>>0<6?(t=k+2|0,(t|0)<(i|0)):0)?(a[g+t>>0]|0)<0:0){if(c[u>>2]|0?c[s>>2]|0:0)break;c[u+((v&(n|0)==1&1)<<2)>>2]=1}r=gf(g,i,(m^1)&1)|0;if((r|0)<0){i=-1;break a}o=r-k|0;p=o+3|0;m=v&(n|0)==1;j=m?e:f;k=j+8|0;if((hf(j,(c[k>>2]|0)+p|0)|0)<0){i=-1;break a}j=(c[j>>2]|0)+(c[k>>2]|0)|0;a[j>>0]=0;a[j+1>>0]=0;a[j+2>>0]=1;Pf(j+3|0,q|0,o|0)|0;if(m){q=j+4|0;a[q>>0]=a[q>>0]&7}c[k>>2]=(c[k>>2]|0)+p;i=i-r|0;if((i|0)>0){m=0;g=g+r|0}else break}g=i;i=c[x>>2]|0;w=22}else{g=h;w=22}while(0);do if((w|0)==22){if(i|0){i=e+8|0;if((hf(e,(c[i>>2]|0)+32|0)|0)<0){i=-1;break}if((jf(c[x>>2]|0,c[b+12>>2]|0,c[e>>2]|0,c[i>>2]|0)|0)<0){i=-1;break}}i=f+8|0;if((hf(f,(c[i>>2]|0)+32|0)|0)<0)i=-1;else{i=(jf(c[b>>2]|0,c[b+8>>2]|0,c[f>>2]|0,c[i>>2]|0)|0)<0;i=i?-1:h-g|0}}while(0);l=y;return i|0}function gf(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;do if(d){if((c|0)>3){if(a[b>>0]|0){d=-1;break}if(((a[b+1>>0]|0)==0?(a[b+2>>0]|0)==0:0)?(a[b+3>>0]|0)==1:0){d=4;e=11;break}}else{if((c|0)!=3){d=-1;break}if(a[b>>0]|0){d=-1;break}}if((a[b+1>>0]|0)==0?(a[b+2>>0]|0)==1:0){d=3;e=11}else d=-1}else{d=0;e=11}while(0);a:do if((e|0)==11){e=d+2|0;if((e|0)<=(c|0))if((e|0)<(c|0)){h=d;while(1){d=h;h=h+1|0;if(!(a[b+d>>0]|0)){f=(a[b+h>>0]|0)==0;if(f?(a[b+e>>0]|0)==1:0)break a;g=d+3|0;if((!((g|0)>=(c|0)|f^1)?(a[b+e>>0]|0)==0:0)?(a[b+g>>0]|0)==1:0)break a;else d=g}else d=d+3|0;if((d|0)>=(c|0)){d=c;break}else e=d}}else d=c;else d=-1}while(0);return d|0}function hf(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+4|0;d=c[e>>2]|0;if((d|0)<(b|0)){d=(d*3|0)/2|0;b=(d|0)<(b|0)?b:d;d=Zd(c[a>>2]|0,b)|0;if(!d)b=-1;else{c[a>>2]=d;c[e>>2]=b;b=0}}else b=0;return b|0}function jf(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;i=l;l=l+96|0;g=i;h=i+80|0;Ld(g);c[g+24>>2]=e;c[g+28>>2]=f;e=e+f|0;f=e+32|0;do{a[e>>0]=0;e=e+1|0}while((e|0)<(f|0));g=Cd(b,d,h,g)|0;l=i;return ((g|0)<0|(c[h>>2]|0)==0)<<31>>31|0}function kf(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+16|0;k=q;c[b>>2]=0;p=mf(k,e,f)|0;if((p|0)>=0?(o=c[k>>2]|0,o>>>0<=(f-p|0)>>>0):0){m=o+10|0;n=Yd(m)|0;i=i&255;a[n>>0]=i;a[n+1>>0]=g>>>24;a[n+2>>0]=g>>>16;a[n+3>>0]=g>>>8;a[n+4>>0]=g;a[n+5>>0]=h>>>24;a[n+6>>0]=h>>>16;a[n+7>>0]=h>>>8;a[n+8>>0]=h;a[n+9>>0]=j+248;Pf(n+10|0,e+p|0,o|0)|0;g=Yd((m<<1)+6|0)|0;a[g>>0]=0;a[g+1>>0]=0;a[g+2>>0]=0;a[g+3>>0]=1;a[g+4>>0]=96;a[g+5>>0]=1;if((m|0)>0){e=0;f=6;while(1){k=e+1|0;if((k|0)<(m|0)&i<<24>>24==0?(a[n+k>>0]|0)==0:0){a[g+f>>0]=0;a[g+(f+1)>>0]=0;a[g+(f+2)>>0]=3;k=e+2|0;f=f+3|0}else{a[g+f>>0]=i;f=f+1|0}if((k|0)>=(m|0))break;e=k;i=a[n+k>>0]|0}if(!f){f=0;k=12}else k=11}else{f=6;k=11}if((k|0)==11)if(!(a[g+(f+-1)>>0]|0))k=12;if((k|0)==12){a[g+f>>0]=-128;f=f+1|0}ae(n);c[d>>2]=f;c[b>>2]=g;f=p+o|0}else f=-1;l=q;return f|0}function lf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=a+8|0;if((hf(a,(c[e>>2]|0)+d|0)|0)<0)a=-1;else{Pf((c[a>>2]|0)+(c[e>>2]|0)|0,b|0,d|0)|0;c[e>>2]=(c[e>>2]|0)+d;a=0}return a|0}function mf(a,b,d){a=a|0;b=b|0;d=d|0;b=nf(a,b,d)|0;if((b|0)>=0)b=(c[a>>2]|0)>>>0>1073741823?-1:b;return b|0}function nf(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0;a:do if((f|0)>=1){g=a[e>>0]|0;h=g&255;if(g<<24>>24>-1){c[b>>2]=h;f=1;break}if(g<<24>>24!=-128){g=h&127;h=e+1|0;while(1){if((f|0)<2){f=-1;break a}i=h;h=h+1|0;i=d[i>>0]|0;g=i&127|g<<7;if(!(i&128))break;else f=f+-1|0}c[b>>2]=g;f=h-e|0}else f=-1}else f=-1;while(0);return f|0}function of(a){a=a|0;pf(a);ae(c[a+56>>2]|0);cf(a);we(a+8|0);we(a+12|0);ae(a);return}function pf(a){a=a|0;var b=0;ae(c[a+124>>2]|0);ae(c[a+128>>2]|0);b=0;do{ae(c[a+132+(b<<2)>>2]|0);ae(c[a+164+(b<<2)>>2]|0);b=b+1|0}while((b|0)!=8);ae(c[a+196>>2]|0);return}function qf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:do if((a+-1|0)>>>0>2147483582)b=0;else{b=c[909]|0;if(!b){b=If(64)|0;if((b|0)==(-1|0)){b=0;break}c[910]=If(0)|0;c[909]=3632;c[908]=3632;c[912]=3644;c[911]=3644;i=b+16|0;rf(i,170);sf(i,3644);sf(b+24|0,3632);b=c[909]|0}i=tf(a)|0;g=b+-8|0;a=uf(g)|0;b:do if(i>>>0>>0){e=g;d=g;a=g;j=10}else{h=c[908]|0;e=a;a=g;f=g;d=g;while(1){if((b|0)==(h|0))break;if((i|0)==(e|0)){j=13;break}b=c[b+4>>2]|0;g=b+-8|0;a=uf(g)|0;if(i>>>0>>0){e=g;d=g;a=g;j=10;break b}else{e=a;a=g;f=g;d=g}}if((j|0)==13){vf(b);break}if((If(i+32-e|0)|0)==(-1|0)){b=0;break a}c[910]=If(0)|0;b=h;e=f;j=10}while(0);if((j|0)==10){j=e+i|0;sf(j,d);sf(j+8|0,b);rf(j,170);vf(b)}rf(a,85)}while(0);return b|0}function rf(b,c){b=b|0;c=c|0;a[b+-1>>0]=c;return}function sf(a,b){a=a|0;b=b|0;var d=0,e=0;e=b+4|0;d=c[e>>2]|0;c[e>>2]=a;c[a>>2]=b;c[a+4>>2]=d;c[d>>2]=a;return}function tf(a){a=a|0;return a+40&-32|0}function uf(a){a=a|0;var b=0;b=c[a+4>>2]|0;return ((b|0)==3644?c[910]|0:b)-a|0}function vf(a){a=a|0;var b=0;b=c[a>>2]|0;a=c[a+4>>2]|0;c[b+4>>2]=a;c[a>>2]=b;return}function wf(a){a=a|0;var b=0,d=0;if(a|0){b=a+-8|0;sf(a,3632);rf(b,170);d=c[b>>2]|0;if((d|0)!=3644?(xf(d)|0)==170:0){vf(b);vf(a);b=d}a=c[b+4>>2]|0;if((a|0)!=3644?(xf(a)|0)==170:0){vf(a);b=b+8|0;vf(b);d=a+8|0;sf(b,d);vf(d)}}return}function xf(a){a=a|0;return d[a+-1>>0]|0|0}function yf(a,b){a=a|0;b=b|0;var d=0,e=0;do if(a){if(!b){wf(a);d=0;break}d=qf(b)|0;if(!d)d=0;else{e=(c[a+-4>>2]|0)-a+-1|0;Pf(d|0,a|0,(e>>>0>b>>>0?b:e)|0)|0;wf(a)}}else d=qf(b)|0;while(0);return d|0}function zf(){return 3652}function Af(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do if(!d)b=0;else{while(1){e=a[b>>0]|0;f=a[c>>0]|0;if(e<<24>>24!=f<<24>>24)break;d=d+-1|0;if(!d){b=0;break a}else{b=b+1|0;c=c+1|0}}b=(e&255)-(f&255)|0}while(0);return b|0}function Bf(a){a=a|0;return 0}function Cf(a){a=a|0;return 0}function Df(a){a=+a;var b=0;b=Cf(32)|0;a=+Ef(a);return ~~a|0}function Ef(a){a=+a;var b=0,d=0;h[j>>3]=a;b=c[j+4>>2]|0;d=b&2146435072;if(!(d>>>0>1126170624|(d|0)==1126170624&0>0)){b=(b|0)<0;a=(b?4503599627370496.0:-4503599627370496.0)+((b?-4503599627370496.0:4503599627370496.0)+a);if(a==0.0)a=b?-0.0:0.0}return +a}function Ff(){}function Gf(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>c;return a>>>c|(b&(1<>c-32|0}function Hf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (C=d,a-c>>>0|0)|0}function If(a){a=a|0;var b=0,d=0;d=a+15&-16|0;b=c[i>>2]|0;a=b+d|0;if((d|0)>0&(a|0)<(b|0)|(a|0)<0){Z()|0;ma(12);return -1}c[i>>2]=a;if((a|0)>(Y()|0)?(X()|0)==0:0){ma(12);c[i>>2]=b;return -1}return b|0}function Jf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (C=b+d+(c>>>0>>0|0)>>>0,c|0)|0}function Kf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=b+e|0;d=d&255;if((e|0)>=67){while(b&3){a[b>>0]=d;b=b+1|0}f=h&-4|0;g=f-64|0;i=d|d<<8|d<<16|d<<24;while((b|0)<=(g|0)){c[b>>2]=i;c[b+4>>2]=i;c[b+8>>2]=i;c[b+12>>2]=i;c[b+16>>2]=i;c[b+20>>2]=i;c[b+24>>2]=i;c[b+28>>2]=i;c[b+32>>2]=i;c[b+36>>2]=i;c[b+40>>2]=i;c[b+44>>2]=i;c[b+48>>2]=i;c[b+52>>2]=i;c[b+56>>2]=i;c[b+60>>2]=i;b=b+64|0}while((b|0)<(f|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}return h-e|0}function Lf(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b<>>32-c;return a<>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function Nf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=R(e,f)|0;d=a>>>16;a=(c>>>16)+(R(e,d)|0)|0;e=b>>>16;b=R(e,f)|0;return (C=(a>>>16)+(R(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function Of(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=Nf(e,f)|0;a=C;return (C=(R(b,f)|0)+(R(d,e)|0)+a|a&0,c|0|0)|0}function Pf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192)return na(b|0,d|0,e|0)|0;h=b|0;g=b+e|0;if((b&3)==(d&3)){while(b&3){if(!e)return h|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}e=g&-4|0;f=e-64|0;while((b|0)<=(f|0)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];c[b+32>>2]=c[d+32>>2];c[b+36>>2]=c[d+36>>2];c[b+40>>2]=c[d+40>>2];c[b+44>>2]=c[d+44>>2];c[b+48>>2]=c[d+48>>2];c[b+52>>2]=c[d+52>>2];c[b+56>>2]=c[d+56>>2];c[b+60>>2]=c[d+60>>2];b=b+64|0;d=d+64|0}while((b|0)<(e|0)){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}}else{e=g-4|0;while((b|0)<(e|0)){a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;b=b+4|0;d=d+4|0}}while((b|0)<(g|0)){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}return h|0}function Qf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return qa[a&1](b|0,c|0,d|0)|0}function Rf(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;ra[a&1](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0)}function Sf(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;sa[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0)}function Tf(a,b,c,d,e,f,g,h,i,j,k,l,m,n){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;ta[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0,l|0,m|0,n|0)}function Uf(a,b){a=a|0;b=b|0;ua[a&1](b|0)}function Vf(a,b,c){a=a|0;b=b|0;c=c|0;va[a&7](b|0,c|0)}function Wf(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return wa[a&1](b|0,c|0,d|0,e|0,f|0,g|0)|0}function Xf(a,b){a=a|0;b=b|0;return xa[a&3](b|0)|0}function Yf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ya[a&7](b|0,c|0,d|0)}function Zf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return za[a&1](b|0,c|0,d|0,e|0)|0}function _f(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Aa[a&3](b|0,c|0,d|0,e|0,f|0,g|0)}function $f(a,b,c){a=a|0;b=b|0;c=c|0;return Ba[a&1](b|0,c|0)|0}function ag(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Ca[a&1](b|0,c|0,d|0,e|0,f|0)|0}function bg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;Da[a&7](b|0,c|0,d|0,e|0)}function cg(a,b,c){a=a|0;b=b|0;c=c|0;V(0);return 0}function dg(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;V(1)}function eg(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;V(2)}function fg(a,b,c,d,e,f,g,h,i,j,k,l,m){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;V(3)}function gg(a){a=a|0;V(4)}function hg(a,b){a=a|0;b=b|0;V(5)}function ig(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;V(6);return 0}function jg(a){a=a|0;V(7);return 0}function kg(a,b,c){a=a|0;b=b|0;c=c|0;V(8)}function lg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;V(9);return 0}function mg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;V(10)}function ng(a,b){a=a|0;b=b|0;V(11);return 0}function og(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;V(12);return 0}function pg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;V(13)} + +// EMSCRIPTEN_END_FUNCS +var qa=[cg,zd];var ra=[dg,Wc];var sa=[eg,Ie,Je,Ke,Gc,Zc,_c,Ge];var ta=[fg,Xc,Yc,fg];var ua=[gg,Rb];var va=[hg,Nc,Sc,Tc,Uc,Vc,kd,ke];var wa=[ig,xd];var xa=[jg,Ob,Qb,jg];var ya=[kg,Lc,Mc,Oc,Pc,Qc,Rc,kg];var za=[lg,Pb];var Aa=[mg,$c,ad,mg];var Ba=[ng,$b];var Ca=[og,yd];var Da=[pg,Hc,Ic,Jc,Kc,pg,pg,pg];return{___muldsi3:Nf,_sbrk:If,_i64Subtract:Hf,_free:wf,_bpg_decoder_decode:$e,_bpg_decoder_start:De,_i64Add:Jf,_bpg_decoder_open:_e,_bitshift64Ashr:Gf,_memset:Kf,_bpg_decoder_get_info:Ce,_malloc:qf,_emscripten_get_global_libc:zf,_memcpy:Pf,_bpg_decoder_get_line:Me,_bpg_decoder_close:of,_bpg_decoder_get_frame_duration:Le,___muldi3:Of,_llvm_bswap_i32:Mf,_bitshift64Shl:Lf,runPostSets:Ff,stackAlloc:Ea,stackSave:Fa,stackRestore:Ga,establishStackSpace:Ha,setTempRet0:Ja,getTempRet0:Ka,setThrew:Ia,stackAlloc:Ea,stackSave:Fa,stackRestore:Ga,establishStackSpace:Ha,setThrew:Ia,setTempRet0:Ja,getTempRet0:Ka,dynCall_iiii:Qf,dynCall_viiiiiiiiii:Rf,dynCall_viiiiiii:Sf,dynCall_viiiiiiiiiiiii:Tf,dynCall_vi:Uf,dynCall_vii:Vf,dynCall_iiiiiii:Wf,dynCall_ii:Xf,dynCall_viii:Yf,dynCall_iiiii:Zf,dynCall_viiiiii:_f,dynCall_iii:$f,dynCall_iiiiii:ag,dynCall_viiii:bg}}) + + +// EMSCRIPTEN_END_ASM +(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var _bpg_decoder_decode=Module["_bpg_decoder_decode"]=asm["_bpg_decoder_decode"];var _bpg_decoder_start=Module["_bpg_decoder_start"]=asm["_bpg_decoder_start"];var stackSave=Module["stackSave"]=asm["stackSave"];var getTempRet0=Module["getTempRet0"]=asm["getTempRet0"];var setThrew=Module["setThrew"]=asm["setThrew"];var _bpg_decoder_get_line=Module["_bpg_decoder_get_line"]=asm["_bpg_decoder_get_line"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _bitshift64Ashr=Module["_bitshift64Ashr"]=asm["_bitshift64Ashr"];var _memset=Module["_memset"]=asm["_memset"];var _bpg_decoder_get_info=Module["_bpg_decoder_get_info"]=asm["_bpg_decoder_get_info"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var setTempRet0=Module["setTempRet0"]=asm["setTempRet0"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=asm["_emscripten_get_global_libc"];var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=asm["_llvm_bswap_i32"];var ___muldsi3=Module["___muldsi3"]=asm["___muldsi3"];var _free=Module["_free"]=asm["_free"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var _bpg_decoder_open=Module["_bpg_decoder_open"]=asm["_bpg_decoder_open"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var _bpg_decoder_close=Module["_bpg_decoder_close"]=asm["_bpg_decoder_close"];var _malloc=Module["_malloc"]=asm["_malloc"];var _bpg_decoder_get_frame_duration=Module["_bpg_decoder_get_frame_duration"]=asm["_bpg_decoder_get_frame_duration"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viiiiiiiiii=Module["dynCall_viiiiiiiiii"]=asm["dynCall_viiiiiiiiii"];var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=asm["dynCall_viiiiiii"];var dynCall_viiiiiiiiiiiii=Module["dynCall_viiiiiiiiiiiii"]=asm["dynCall_viiiiiiiiiiiii"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=asm["dynCall_iiiiiii"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_iiiiii=Module["dynCall_iiiiii"]=asm["dynCall_iiiiii"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];Runtime.stackAlloc=Module["stackAlloc"];Runtime.stackSave=Module["stackSave"];Runtime.stackRestore=Module["stackRestore"];Runtime.establishStackSpace=Module["establishStackSpace"];Runtime.setTempRet0=Module["setTempRet0"];Runtime.getTempRet0=Module["getTempRet0"];Module["asm"]=asm;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["exit"](status)}Module["quit"](status,new ExitStatus(status))}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}run();window["BPGDecoder"]=(function(ctx){this.ctx=ctx;this["imageData"]=null;this["onload"]=null;this["frames"]=null;this["loop_count"]=0});window["BPGDecoder"].prototype={malloc:Module["cwrap"]("malloc","number",["number"]),free:Module["cwrap"]("free","void",["number"]),bpg_decoder_open:Module["cwrap"]("bpg_decoder_open","number",[]),bpg_decoder_decode:Module["cwrap"]("bpg_decoder_decode","number",["number","array","number"]),bpg_decoder_get_info:Module["cwrap"]("bpg_decoder_get_info","number",["number","number"]),bpg_decoder_start:Module["cwrap"]("bpg_decoder_start","number",["number","number"]),bpg_decoder_get_frame_duration:Module["cwrap"]("bpg_decoder_get_frame_duration","void",["number","number","number"]),bpg_decoder_get_line:Module["cwrap"]("bpg_decoder_get_line","number",["number","number"]),bpg_decoder_close:Module["cwrap"]("bpg_decoder_close","void",["number"]),load:(function(url){var request=new XMLHttpRequest;var this1=this;request.open("get",url,true);request.responseType="arraybuffer";request.onload=(function(event){this1._onload(request,event)});request.send()}),_onload:(function(request,event){var data=request.response;var array=new Uint8Array(data);var img,w,h,img_info_buf,cimg,p0,rgba_line,w4,frame_count;var heap8,heap16,heap32,dst,i,y,duration,frames,loop_count;img=this.bpg_decoder_open();if(this.bpg_decoder_decode(img,array,array.length)<0){console.log("could not decode image");return}img_info_buf=this.malloc(5*4);this.bpg_decoder_get_info(img,img_info_buf);heap8=Module["HEAPU8"];heap16=Module["HEAPU16"];heap32=Module["HEAPU32"];w=heap32[img_info_buf>>2];h=heap32[img_info_buf+4>>2];loop_count=heap16[img_info_buf+16>>1];w4=w*4;rgba_line=this.malloc(w4);frame_count=0;frames=[];for(;;){if(this.bpg_decoder_start(img,1)<0)break;this.bpg_decoder_get_frame_duration(img,img_info_buf,img_info_buf+4);duration=heap32[img_info_buf>>2]*1e3/heap32[img_info_buf+4>>2];cimg=this.ctx.createImageData(w,h);dst=cimg.data;p0=0;for(y=0;y=frames.length){if(dec["loop_count"]==0||dec.loop_counter=0){dec.frame_index=frame_index;ctx.putImageData(frames[frame_index]["img"],0,0);setTimeout(next_frame,frames[frame_index]["duration"])}}canvas.width=imageData.width;canvas.height=imageData.height;ctx.putImageData(imageData,0,0);if(frames.length>1){dec.frame_index=0;dec.loop_counter=0;setTimeout(next_frame,frames[0]["duration"])}}).bind(dec,canvas,ctx);dec.load(url)}})}))() + + + + diff --git a/themes/fractal-forest/static/js/bpgdec.js.sha384 b/themes/fractal-forest/static/js/bpgdec.js.sha384 new file mode 100644 index 0000000..d32f70f --- /dev/null +++ b/themes/fractal-forest/static/js/bpgdec.js.sha384 @@ -0,0 +1 @@ +WjNxxN+t6/zyZRw8QQPGVYHSU1N3kcbNWWkGQRigK1zD12fGnNwIJpM7RmYEDOzK diff --git a/themes/fractal-forest/static/js/bpgdec8.js b/themes/fractal-forest/static/js/bpgdec8.js new file mode 100644 index 0000000..ef324e4 --- /dev/null +++ b/themes/fractal-forest/static/js/bpgdec8.js @@ -0,0 +1,17 @@ +((function(){var Module={};var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else{throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER}if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=console.log;if(!Module["printErr"])Module["printErr"]=console.warn;var nodeFS;var nodePath;Module["read"]=function read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=(function(status,toThrow){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return xhr.response}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function printErr(x){console.warn(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}if(!Module["quit"]){Module["quit"]=(function(status,toThrow){throw toThrow})}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var Runtime={setTempRet0:(function(value){tempRet0=value;return value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i>2];var end=(ret+size+15|0)&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=Runtime.stackAlloc(len);stringToUTF8(str,ret,len)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[typeof _malloc==="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function demangle(func){var __cxa_demangle_func=Module["___cxa_demangle"]||Module["__cxa_demangle"];if(__cxa_demangle_func){try{var s=func.substr(1);var len=lengthBytesUTF8(s)+1;var buf=_malloc(len);stringToUTF8(s,buf,len);var status=_malloc(4);var ret=__cxa_demangle_func(buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}return func}Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}Module["stackTrace"]=stackTrace;var HEAP;var buffer;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||33554432;if(TOTAL_MEMORY0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var lastChar,end;if(dontAddNull){end=buffer+lengthBytesUTF8(string);lastChar=HEAP8[end]}stringToUTF8(string,buffer,Infinity);if(dontAddNull)HEAP8[end]=lastChar}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];if(!Math["trunc"])Math["trunc"]=(function(x){return x<0?Math.ceil(x):Math.floor(x)});Math.trunc=Math["trunc"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_round=Math.round;var Math_min=Math.min;var Math_clz32=Math.clz32;var Math_trunc=Math.trunc;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+6096;__ATINIT__.push();allocate([29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,33,0,0,0,34,0,0,0,34,0,0,0,35,0,0,0,35,0,0,0,36,0,0,0,36,0,0,0,37,0,0,0,37,0,0,0,93,6,0,0,0,0,0,0,0,0,0,0,53,54,50,72,34,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,1,0,0,0,0,0,0,0,255,255,255,127,0,0,0,0,0,0,0,0,3,1,1,0,36,56,37,56,38,56,0,0,0,0,0,0,4,0,0,0,0,0,0,0,3,1,0,16,36,56,37,56,38,56,0,0,0,0,0,0,5,0,0,0,0,0,0,0,3,0,0,16,36,56,37,56,38,56,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,0,0,0,36,56,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,1,0,0,0,0,240,154,249,114,252,138,253,30,254,122,254,197,254,0,255,197,254,122,254,30,254,138,253,114,252,154,249,0,240,0,0,1,0,1,2,0,1,2,3,1,2,3,2,3,3,0,1,0,2,1,0,3,2,1,0,3,2,1,3,2,3,0,0,1,0,1,2,0,1,2,3,0,1,2,3,4,0,1,2,3,4,5,0,1,2,3,4,5,6,0,1,2,3,4,5,6,7,1,2,3,4,5,6,7,2,3,4,5,6,7,3,4,5,6,7,4,5,6,7,5,6,7,6,7,7,0,1,0,2,1,0,3,2,1,0,4,3,2,1,0,5,4,3,2,1,0,6,5,4,3,2,1,0,7,6,5,4,3,2,1,0,7,6,5,4,3,2,1,7,6,5,4,3,2,7,6,5,4,3,7,6,5,4,7,6,5,7,6,7,40,45,51,57,64,72,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,8,8,8,8,8,8,9,9,9,9,9,9,10,10,10,10,10,10,11,11,11,11,11,11,12,12,0,0,0,2,5,9,1,4,8,12,3,7,11,14,6,10,13,15,0,2,1,3,0,2,5,9,14,20,27,35,1,4,8,13,19,26,34,42,3,7,12,18,25,33,41,48,6,11,17,24,32,40,47,53,10,16,23,31,39,46,52,57,15,22,30,38,45,51,56,60,21,29,37,44,50,55,59,62,28,36,43,49,54,58,61,63,0,1,0,1,0,0,1,1,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,0,1,2,3,16,17,18,19,4,5,6,7,20,21,22,23,8,9,10,11,24,25,26,27,12,13,14,15,28,29,30,31,32,33,34,35,48,49,50,51,36,37,38,39,52,53,54,55,40,41,42,43,56,57,58,59,44,45,46,47,60,61,62,63,0,1,4,5,2,3,4,5,6,6,8,8,7,7,8,8,1,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,2,1,0,0,2,1,0,0,2,1,0,0,2,1,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,153,200,139,141,157,154,154,154,154,154,154,154,154,184,154,154,154,184,63,139,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,153,138,138,111,141,94,138,182,154,139,139,139,139,139,139,110,110,124,125,140,153,125,127,140,109,111,143,127,111,79,108,123,63,110,110,124,125,140,153,125,127,140,109,111,143,127,111,79,108,123,63,91,171,134,141,111,111,125,110,110,94,124,108,124,107,125,141,179,153,125,107,125,141,179,153,125,107,125,141,179,153,125,140,139,182,182,152,136,152,136,153,136,139,111,136,139,111,141,111,140,92,137,138,140,152,138,139,153,74,149,92,139,107,122,152,140,179,166,182,140,227,122,197,138,153,136,167,152,152,154,154,154,154,154,154,154,154,154,154,154,154,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,153,185,107,139,126,154,197,185,201,154,154,154,149,154,139,154,154,154,152,139,110,122,95,79,63,31,31,153,153,153,153,140,198,140,198,168,79,124,138,94,153,111,149,107,167,154,139,139,139,139,139,139,125,110,94,110,95,79,125,111,110,78,110,111,111,95,94,108,123,108,125,110,94,110,95,79,125,111,110,78,110,111,111,95,94,108,123,108,121,140,61,154,155,154,139,153,139,123,123,63,153,166,183,140,136,153,154,166,183,140,136,153,154,166,183,140,136,153,154,170,153,123,123,107,121,107,121,167,151,183,140,151,183,140,140,140,154,196,196,167,154,152,167,182,182,134,149,136,153,121,136,137,169,194,166,167,154,167,137,182,107,167,91,122,107,167,154,154,154,154,154,154,154,154,154,154,154,154,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,153,160,107,139,126,154,197,185,201,154,154,154,134,154,139,154,154,183,152,139,154,137,95,79,63,31,31,153,153,153,153,169,198,169,198,168,79,224,167,122,153,111,149,92,167,154,139,139,139,139,139,139,125,110,124,110,95,94,125,111,111,79,125,126,111,111,79,108,123,93,125,110,124,110,95,94,125,111,111,79,125,126,111,111,79,108,123,93,121,140,61,154,170,154,139,153,139,123,123,63,124,166,183,140,136,153,154,166,183,140,136,153,154,166,183,140,136,153,154,170,153,138,138,122,121,122,121,167,151,183,140,151,183,140,140,140,154,196,167,167,154,152,167,182,182,134,149,136,153,121,136,122,169,208,166,167,154,152,167,182,107,167,91,107,107,167,154,154,154,154,154,154,154,154,154,154,154,154,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,8,9,10,11,12,13,14,15,16,17,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,5,5,6,6,7,8,9,10,11,13,14,16,18,20,22,24,29,30,31,32,33,33,34,34,35,35,36,36,37,37,104,101,118,99,0,0,26,10,1,0,1,2,2,2,2,3,5,7,8,10,12,13,15,17,18,19,20,21,22,23,23,24,24,25,25,26,27,27,28,28,29,29,30,31,32,26,21,17,13,9,5,2,0,254,251,247,243,239,235,230,224,230,235,239,243,247,251,254,0,2,5,9,13,17,21,26,32,64,90,90,90,89,88,87,85,83,82,80,78,75,73,70,67,64,61,57,54,50,46,43,38,36,31,25,22,18,13,9,4,255,0,1,0,0,255,0,1,255,255,1,1,1,255,255,1,1,2,0,3,4,16,16,16,16,17,18,21,24,16,16,16,16,17,19,22,25,16,16,17,18,20,22,25,29,16,16,18,21,24,27,31,36,17,17,20,24,30,35,41,47,18,19,22,27,35,44,54,65,21,22,25,31,41,54,70,88,24,25,29,36,47,65,88,115,16,16,16,16,17,18,20,24,16,16,16,17,18,20,24,25,16,16,17,18,20,24,25,28,16,17,18,20,24,25,28,33,17,18,20,24,25,28,33,41,18,20,24,25,28,33,41,54,20,24,25,28,33,41,54,71,24,25,28,33,41,54,71,91,128,176,208,240,128,167,197,227,128,158,187,216,123,150,178,205,116,142,169,195,111,135,160,185,105,128,152,175,100,122,144,166,95,116,137,158,90,110,130,150,85,104,123,142,81,99,117,135,77,94,111,128,73,89,105,122,69,85,100,116,66,80,95,110,62,76,90,104,59,72,86,99,56,69,81,94,53,65,77,89,51,62,73,85,48,59,69,80,46,56,66,76,43,53,63,72,41,50,59,69,39,48,56,65,37,45,54,62,35,43,51,59,33,41,48,56,32,39,46,53,30,37,43,50,29,35,41,48,27,33,39,45,26,31,37,43,24,30,35,41,23,28,33,39,22,27,32,37,21,26,30,35,20,24,29,33,19,23,27,31,18,22,26,30,17,21,25,28,16,20,23,27,15,19,22,25,14,18,21,24,14,17,20,23,13,16,19,22,12,15,18,21,12,14,17,20,11,14,16,19,11,13,15,18,10,12,15,17,10,12,14,16,9,11,13,15,9,11,12,14,8,10,12,14,8,9,11,13,7,9,11,12,7,9,10,12,7,8,10,11,6,8,9,11,6,7,9,10,6,7,8,9,2,2,2,2,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,62,63,0,0,1,2,2,4,4,5,6,7,8,9,9,11,11,12,13,13,15,15,16,16,18,18,19,19,21,21,22,22,23,24,24,25,26,26,27,27,28,29,29,30,30,30,31,32,32,33,33,33,34,34,35,35,35,36,36,36,37,37,37,38,38,63,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,0,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;STATICTOP+=16;Module["_bitshift64Ashr"]=_bitshift64Ashr;Module["_i64Subtract"]=_i64Subtract;function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}Module["_sbrk"]=_sbrk;Module["_i64Add"]=_i64Add;Module["_memset"]=_memset;Module["_bitshift64Shl"]=_bitshift64Shl;function _abort(){Module["abort"]()}Module["_llvm_bswap_i32"]=_llvm_bswap_i32;Module["___muldsi3"]=___muldsi3;Module["___muldi3"]=___muldi3;function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;DYNAMICTOP_PTR=allocate(1,"i32",ALLOC_STATIC);STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;function invoke_iiii(index,a1,a2,a3){try{return Module["dynCall_iiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){try{Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vi(index,a1){try{Module["dynCall_vi"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vii(index,a1,a2){try{Module["dynCall_vii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){try{return Module["dynCall_iiiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){try{Module["dynCall_viiiiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_ii(index,a1){try{return Module["dynCall_ii"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viii(index,a1,a2,a3){try{Module["dynCall_viii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){try{Module["dynCall_viiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){try{return Module["dynCall_iiiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iii(index,a1,a2){try{return Module["dynCall_iii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){try{return Module["dynCall_iiiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){try{Module["dynCall_viiiiiii"](index,a1,a2,a3,a4,a5,a6,a7)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity};Module.asmLibraryArg={"abort":abort,"assert":assert,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"invoke_iiii":invoke_iiii,"invoke_viiiii":invoke_viiiii,"invoke_vi":invoke_vi,"invoke_vii":invoke_vii,"invoke_iiiiiii":invoke_iiiiiii,"invoke_viiiiiiiiiiii":invoke_viiiiiiiiiiii,"invoke_ii":invoke_ii,"invoke_viii":invoke_viii,"invoke_viiiiiiiii":invoke_viiiiiiiii,"invoke_iiiii":invoke_iiiii,"invoke_viiiiii":invoke_viiiiii,"invoke_iii":invoke_iii,"invoke_iiiiii":invoke_iiiiii,"invoke_viiiiiii":invoke_viiiiiii,"___setErrNo":___setErrNo,"_emscripten_memcpy_big":_emscripten_memcpy_big,"_abort":_abort,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX};// EMSCRIPTEN_START_ASM +var asm=(function(global,env,buffer) { +"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.DYNAMICTOP_PTR|0;var j=env.tempDoublePtr|0;var k=env.ABORT|0;var l=env.STACKTOP|0;var m=env.STACK_MAX|0;var n=0;var o=0;var p=0;var q=0;var r=global.NaN,s=global.Infinity;var t=0,u=0,v=0,w=0,x=0.0,y=0,z=0,A=0,B=0.0;var C=0;var D=global.Math.floor;var E=global.Math.abs;var F=global.Math.sqrt;var G=global.Math.pow;var H=global.Math.cos;var I=global.Math.sin;var J=global.Math.tan;var K=global.Math.acos;var L=global.Math.asin;var M=global.Math.atan;var N=global.Math.atan2;var O=global.Math.exp;var P=global.Math.log;var Q=global.Math.ceil;var R=global.Math.imul;var S=global.Math.min;var T=global.Math.max;var U=global.Math.clz32;var V=env.abort;var W=env.assert;var X=env.enlargeMemory;var Y=env.getTotalMemory;var Z=env.abortOnCannotGrowMemory;var _=env.invoke_iiii;var $=env.invoke_viiiii;var aa=env.invoke_vi;var ba=env.invoke_vii;var ca=env.invoke_iiiiiii;var da=env.invoke_viiiiiiiiiiii;var ea=env.invoke_ii;var fa=env.invoke_viii;var ga=env.invoke_viiiiiiiii;var ha=env.invoke_iiiii;var ia=env.invoke_viiiiii;var ja=env.invoke_iii;var ka=env.invoke_iiiiii;var la=env.invoke_viiiiiii;var ma=env.___setErrNo;var na=env._emscripten_memcpy_big;var oa=env._abort;var pa=0.0; +// EMSCRIPTEN_START_FUNCS +function Ea(a){a=a|0;var b=0;b=l;l=l+a|0;l=l+15&-16;return b|0}function Fa(){return l|0}function Ga(a){a=a|0;l=a}function Ha(a,b){a=a|0;b=b|0;l=a;m=b}function Ia(a,b){a=a|0;b=b|0;if(!n){n=a;o=b}}function Ja(a){a=a|0;C=a}function Ka(){return C|0}function La(b,d){b=b|0;d=d|0;var e=0;do if(a[(c[b+204>>2]|0)+43>>0]|0){e=c[(c[b+200>>2]|0)+13128>>2]|0;d=(d|0)%(e|0)|0;if((d|0)!=2?!((e|0)==2&(d|0)==0):0)break;Pf(c[b+152>>2]|0,c[b+136>>2]|0,199)|0}while(0);return}function Ma(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=b+204|0;e=c[g>>2]|0;do if((c[(c[e+1668>>2]|0)+(c[b+2500>>2]<<2)>>2]|0)==(d|0)){Na(b);e=b+1449|0;if(a[e>>0]|0){f=c[g>>2]|0;if(a[f+42>>0]|0?(f=c[f+1676>>2]|0,(c[f+(d<<2)>>2]|0)!=(c[f+(d+-1<<2)>>2]|0)):0)i=5}else i=5;if((i|0)==5)Oa(b);if(((a[b+1448>>0]|0)==0?a[(c[g>>2]|0)+43>>0]|0:0)?(h=c[(c[b+200>>2]|0)+13128>>2]|0,((d|0)%(h|0)|0|0)==0):0){if((h|0)==1){Oa(b);break}if((a[e>>0]|0)==1)Pa(b)}}else{if((a[e+42>>0]|0)!=0?(i=c[e+1676>>2]|0,(c[i+(d<<2)>>2]|0)!=(c[i+(d+-1<<2)>>2]|0)):0){if((a[b+141>>0]|0)==1)Qa(c[b+136>>2]|0);else Na(b);Oa(b);e=c[g>>2]|0}if(a[e+43>>0]|0?(f=b+200|0,((d|0)%(c[(c[f>>2]|0)+13128>>2]|0)|0|0)==0):0){e=b+136|0;Ra((c[e>>2]|0)+224|0)|0;if((a[b+141>>0]|0)==1)Qa(c[e>>2]|0);else Na(b);if((c[(c[f>>2]|0)+13128>>2]|0)==1){Oa(b);break}else{Pa(b);break}}}while(0);return}function Na(a){a=a|0;var b=0,d=0;d=a+136|0;a=(c[d>>2]|0)+204|0;Rd(a,1);sb(a);d=(c[d>>2]|0)+224|0;b=c[a>>2]|0;b=b+((tb(a)|0)/8|0)|0;Md(d,b,((ub(a)|0)+7|0)/8|0);return}function Oa(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;g=c[b+1440>>2]|0;e=2-g|0;e=(g|0)==2|(a[b+2060>>0]|0)==0?e:e^3;g=b+2112|0;f=b+136|0;b=0;do{h=d[912+(e*199|0)+b>>0]|0;j=a[g>>0]|0;i=j<<24>>24;h=((h<<3&120)+-16+((R(j<<24>>24<0?0:(i|0)<51?i:51,((h>>>4)*5|0)+-45|0)|0)>>4)<<1)+-127|0;h=h>>31^h;a[(c[f>>2]|0)+b>>0]=(h|0)>124?h&1|124:h;b=b+1|0}while((b|0)!=199);b=0;do{a[(c[f>>2]|0)+199+b>>0]=0;b=b+1|0}while((b|0)!=4);return}function Pa(a){a=a|0;Pf(c[a+136>>2]|0,c[a+152>>2]|0,199)|0;return}function Qa(a){a=a|0;vb(a+224|0);return}function Ra(a){a=a|0;var b=0,d=0;d=a+4|0;b=(c[d>>2]|0)+-2|0;c[d>>2]=b;if((c[a>>2]|0)<(b<<17|0)){wb(a);a=0}else a=(c[a+16>>2]|0)-(c[a+12>>2]|0)|0;return a|0}function Sa(a){a=a|0;a=c[a+136>>2]|0;return Ta(a+224|0,a)|0}function Ta(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=d[e>>0]|0;g=b+4|0;i=c[g>>2]|0;j=d[5253+((i<<1&384)+f)>>0]|0;i=i-j|0;k=i<<17;l=c[b>>2]|0;h=k-l>>31;c[b>>2]=l-(h&k);c[g>>2]=(h&j-i)+i;f=h^f;a[e>>0]=a[5893+f>>0]|0;h=c[g>>2]|0;e=d[4741+h>>0]|0;c[g>>2]=h<>2]<>2]=e;if(!(e&65535))yb(b);return f&1|0}function Ua(a){a=a|0;var b=0;a=a+136|0;b=c[a>>2]|0;if(!(Ta(b+224|0,b+1|0)|0))a=0;else{a=(Va((c[a>>2]|0)+224|0)|0)==0;a=a?1:2}return a|0}function Va(a){a=a|0;var b=0,d=0;b=c[a>>2]<<1;c[a>>2]=b;if(!(b&65534)){xb(a);b=c[a>>2]|0}d=c[a+4>>2]<<17;if((b|0)<(d|0))b=0;else{c[a>>2]=b-d;b=1}return b|0}function Wa(a){a=a|0;var b=0,d=0;d=a+136|0;a=0;b=Va((c[d>>2]|0)+224|0)|0;do{b=Va((c[d>>2]|0)+224|0)|0|b<<1;a=a+1|0}while((a|0)!=4);return b|0}function Xa(a){a=a|0;var b=0,d=0;d=c[(c[a+200>>2]|0)+52>>2]|0;d=(d|0)>10?31:(1<0){a=0;do{if(!(Va((c[b>>2]|0)+224|0)|0))break a;a=a+1|0}while((a|0)<(d|0))}else a=0;while(0);return a|0}function Ya(a){a=a|0;return Va((c[a+136>>2]|0)+224|0)|0}function Za(a){a=a|0;var b=0;b=a+136|0;a=(Va((c[b>>2]|0)+224|0)|0)<<1;return Va((c[b>>2]|0)+224|0)|0|a|0}function _a(a){a=a|0;return Ra((c[a+136>>2]|0)+224|0)|0}function $a(a){a=a|0;a=c[a+136>>2]|0;return Ta(a+224|0,a+5|0)|0}function ab(a){a=a|0;var b=0,d=0,e=0,f=0;e=a+136|0;a=9;b=0;while(1){d=c[e>>2]|0;if(!(Ta(d+224|0,d+a|0)|0)){a=0;break}b=b+1|0;if((b|0)>=5){a=0;d=0;f=4;break}else a=10}do if((f|0)==4){while(1){f=0;if(!(Va((c[e>>2]|0)+224|0)|0)){f=5;break}a=(1<>2]|0)+224|0)|0)<>2]|0)+224|0)|0}function cb(a){a=a|0;a=c[a+136>>2]|0;return Ta(a+224|0,a+176|0)|0}function db(b){b=b|0;var d=0,e=0,f=0;f=a[(c[b+204>>2]|0)+1633>>0]|0;f=(f&255)>5?f:5;e=f&255;d=b+136|0;a:do if(!(f<<24>>24))b=0;else{b=0;do{f=c[d>>2]|0;if(!(Ta(f+224|0,f+177|0)|0))break a;b=b+1|0}while((b|0)<(e|0))}while(0);return b|0}function eb(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;k=c[b+200>>2]|0;l=(1<>2])+-1|0;j=c[k+13064>>2]|0;i=f>>j;j=g>>j;m=c[b+136>>2]|0;if((a[m+308>>0]|0)!=0|(l&f|0)!=0)h=d[(c[b+4336>>2]|0)+(i+-1+(R(c[k+13140>>2]|0,j)|0))>>0]|0;else h=0;if((l&g|0)!=0|(a[m+309>>0]|0)!=0)f=d[(c[b+4336>>2]|0)+((R(c[k+13140>>2]|0,j+-1|0)|0)+i)>>0]|0;else f=0;return Ta(m+224|0,m+(((h|0)>(e|0)?3:2)+((f|0)>(e|0)&1))|0)|0}function fb(a,b){a=a|0;b=b|0;b=c[a+136>>2]|0;b=(Ta(b+224|0,b+13|0)|0)==0;return (b?3:0)|0}function gb(a){a=a|0;return Ra((c[a+136>>2]|0)+224|0)|0}function hb(a){a=a|0;a=c[a+136>>2]|0;return Ta(a+224|0,a+17|0)|0}function ib(a){a=a|0;var b=0;b=a+136|0;a=0;do{if(!(Va((c[b>>2]|0)+224|0)|0))break;a=a+1|0}while((a|0)<2);return a|0}function jb(a){a=a|0;var b=0,d=0;d=a+136|0;a=0;b=Va((c[d>>2]|0)+224|0)|0;do{b=Va((c[d>>2]|0)+224|0)|0|b<<1;a=a+1|0}while((a|0)!=4);return b|0}function kb(a){a=a|0;var b=0;a=a+136|0;b=c[a>>2]|0;if(!(Ta(b+224|0,b+18|0)|0))a=4;else{b=(Va((c[a>>2]|0)+224|0)|0)<<1;a=Va((c[a>>2]|0)+224|0)|0|b}return a|0}function lb(a,b){a=a|0;b=b|0;a=c[a+136>>2]|0;return Ta(a+224|0,a+(42-b)|0)|0}function mb(a,b){a=a|0;b=b|0;a=c[a+136>>2]|0;return Ta(a+224|0,a+(b+42)|0)|0}function nb(a,b){a=a|0;b=b|0;a=c[a+136>>2]|0;return Ta(a+224|0,a+((b|0)==0?41:40)|0)|0}function ob(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+136|0;b=(b<<2)+166|0;a=0;do{e=c[d>>2]|0;if(!(Ta(e+224|0,e+(b+a)|0)|0))break;a=a+1|0}while((a|0)<4);return a|0}function pb(a,b){a=a|0;b=b|0;a=c[a+136>>2]|0;return Ta(a+224|0,a+(b+174)|0)|0}function qb(f,g,h,i,j,k){f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,ua=0,va=0,wa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0;Pa=l;l=l+96|0;Ea=Pa+24|0;Fa=Pa+8|0;Ga=Pa;Ha=f+136|0;La=c[Ha>>2]|0;Na=c[f+160>>2]|0;Oa=c[Na+32+(k<<2)>>2]|0;Ia=f+200|0;z=c[Ia>>2]|0;Ma=R(h>>c[z+13180+(k<<2)>>2],Oa)|0;Ma=(c[Na+(k<<2)>>2]|0)+((g>>c[z+13168+(k<<2)>>2]<>2])+Ma)|0;z=(k|0)!=0;Na=La+320|0;Ka=z?La+11680|0:Na;g=Ea;h=g+64|0;do{a[g>>0]=0;g=g+1|0}while((g|0)<(h|0));y=1<>2]|0;Ja=y<>0]|0)){m=a[La+272>>0]|0;o=f+204|0;za=c[o>>2]|0;if((a[za+21>>0]|0)!=0?(d[za+1629>>0]|0)>=(i|0):0)q=rb(f,k)|0;else q=0;do if(!Ba){g=c[o>>2]|0;if((k|0)==1){g=(c[f+2072>>2]|0)+(c[g+28>>2]|0)|0;h=La+302|0}else{g=(c[f+2076>>2]|0)+(c[g+32>>2]|0)|0;h=La+303|0}g=g+m+(a[h>>0]|0)|0;m=c[Ia>>2]|0;h=c[m+13192>>2]|0;za=0-h|0;g=(g|0)<(za|0)?za:(g|0)<57?g:57;if((c[m+4>>2]|0)!=1){g=(g|0)<51?g:51;break}if((g|0)>=30)if((g|0)>43){g=g+-6|0;break}else{g=c[8+(g+-30<<2)>>2]|0;break}}else{za=c[Ia>>2]|0;g=m;h=c[za+13192>>2]|0;m=za}while(0);n=h+g|0;h=(c[m+52>>2]|0)+i|0;g=h+-5|0;h=1<>0]|0)>>0]<>0];if((a[m+634>>0]|0)!=0?!((i|0)>2&(q|0)!=0):0){o=c[o>>2]|0;o=(a[o+68>>0]|0)==0?m+635|0:o+69|0;p=((c[La+31244>>2]|0)!=1?3:0)+k|0;m=o+((i+-2|0)*384|0)+(p<<6)|0;if((i|0)>3){ya=q;wa=m;x=a[o+1536+((i+-4|0)*6|0)+p>>0]|0}else{ya=q;wa=m;x=16}}else{ya=q;wa=0;x=16}}else{g=0;h=0;n=0;ya=0;wa=0;x=0}va=i<<1;s=va+-1|0;za=i+-2|0;p=Ba?(za*3|0)+(i+-1>>2)|0:15;r=Ba?i+1>>2:za;if((va|0)>1){o=p+52|0;m=0;while(1){va=c[Ha>>2]|0;if(!(Ta(va+224|0,va+(o+(m>>r))|0)|0)){q=m;break}m=m+1|0;if((m|0)>=(s|0)){q=m;break}}o=p+70|0;m=0;while(1){va=c[Ha>>2]|0;if(!(Ta(va+224|0,va+(o+(m>>r))|0)|0)){r=m;break}m=m+1|0;if((m|0)>=(s|0)){r=m;break}}if((q|0)>3){p=(q>>>1)+-1|0;m=Va((c[Ha>>2]|0)+224|0)|0;if((p|0)>1){o=1;do{m=Va((c[Ha>>2]|0)+224|0)|0|m<<1;o=o+1|0}while((o|0)!=(p|0))}q=m+((q&1|2)<3){p=(r>>>1)+-1|0;m=Va((c[Ha>>2]|0)+224|0)|0;if((p|0)>1){o=1;do{m=Va((c[Ha>>2]|0)+224|0)|0|m<<1;o=o+1|0}while((o|0)!=(p|0))}v=m+((r&1|2)<>2;m=v>>2;Ca=44}else{w=q>>2;u=v>>2;switch(j|0){case 0:break;case 1:{ua=736;va=752;o=d[768+(v<<3)+q>>0]|0;p=728;r=732;s=v;m=w;break a}default:{s=v;t=q;m=w;Ca=44;break a}}o=d[(q&3)+(644+((v&3)<<2))>>0]|0;switch(i|0){case 2:{ua=326;va=342;p=3716;r=3716;s=v;m=w;break a}case 3:{p=732;r=728;m=660+(u<<1)+w|0;break}case 4:{p=326;r=342;m=644+(u<<2)+w|0;break}default:{p=358;r=422;m=664+(u<<3)+w|0}}ua=326;va=342;o=(d[m>>0]<<4)+o|0;s=v;m=w}while(0);if((Ca|0)==44){ua=752;va=736;o=d[768+(t<<3)+s>>0]|0;p=732;r=728;q=t}ra=o+1|0;pa=o>>4;if((pa|0)>-1){qa=(1<0;oa=na?90:88;ma=y+-1>>2;ia=z?27:0;ja=(i|0)==2;ka=(i|0)==3;la=ia+3|0;_=(j|0)==0?9:15;Z=Ba?0:27;$=(ya|0)==0;Y=Ba?42:43;X=Ba?40:41;aa=La+31244|0;ba=(ya|0)!=0;ca=(Da|16|0)==26;da=f+204|0;ea=((n|0)<0)<<31>>31;fa=((h|0)<0)<<31>>31;ha=(i|0)>2&ba;ga=(i|0)<4;U=x&255;V=(Ba&1)<<1;W=V|1;T=ia+(ka?9:12)|0;v=1;S=pa;t=0;o=16;while(1){y=S<<4;j=a[p+S>>0]|0;E=j&255;B=a[r+S>>0]|0;F=B&255;D=(S|0)!=0;if((S|0)<(pa|0)&D){if((E|0)<(qa|0))w=d[Ea+(E+1<<3)+F>>0]|0;else w=0;if((F|0)<(qa|0))x=(d[F+1+(Ea+(E<<3))>>0]|0)+w|0;else x=w;k=c[Ha>>2]|0;w=1;k=(Ta(k+224|0,k+(((x|0)<1?x:1)+oa)|0)|0)&255}else{w=0;k=((B|j)<<24>>24==0|(E|0)==(m|0)&(F|0)==(u|0))&1}a[Ea+(E<<3)+F>>0]=k;x=ra-y|0;if((S|0)==(pa|0)){a[Fa>>0]=x+255;A=x+-2|0;x=1}else{A=15;x=0}if((E|0)<(ma|0))y=(a[Ea+(E+1<<3)+F>>0]|0)!=0&1;else y=0;if((F|0)<(ma|0))y=((a[F+1+(Ea+(E<<3))>>0]|0)!=0&1)<<1|y;do if((A|0)>-1&k<<24>>24!=0){if(!(c[(c[Ia>>2]|0)+13100>>2]|0))if(ja){k=832;j=ia}else Ca=65;else if($){z=(a[Aa>>0]|0)!=0;if(z|ja){k=z?896:832;j=z?X:ia}else Ca=65}else{k=896;j=X}do if((Ca|0)==65){Ca=0;k=832+((y<<4)+16)|0;if(Ba){y=(B|j)<<24>>24==0?ia:la;if(ka){j=y+_|0;break}else{j=y+21|0;break}}else j=T}while(0);if((A|0)>0){z=j+92|0;y=A;while(1){Q=c[Ha>>2]|0;if(Ta(Q+224|0,Q+(z+(d[k+((d[va+y>>0]<<2)+(d[ua+y>>0]|0))>>0]|0))|0)|0){a[Fa+(x&255)>>0]=y;x=x+1<<24>>24;w=0}if((y|0)>1)y=y+-1|0;else break}}if(!w){if(c[(c[Ia>>2]|0)+13100>>2]|0)if($?(a[Aa>>0]|0)==0:0)Ca=78;else w=Y;else Ca=78;if((Ca|0)==78){Ca=0;w=(S|0)==0?Z:j+2|0}Q=c[Ha>>2]|0;if((Ta(Q+224|0,Q+(w+92)|0)|0)!=1)break}a[Fa+(x&255)>>0]=0;x=x+1<<24>>24}while(0);Q=x&255;if(x<<24>>24){w=Ba&D?2:0;if(!(c[(c[Ia>>2]|0)+13116>>2]|0))D=0;else{if($?(a[Aa>>0]|0)==0:0)t=V;else t=W;D=(d[La+199+t>>0]|0)>>>2&255}A=(S|0)!=(pa|0)&(v|0)==0&1|w;B=a[Fa>>0]|0;j=B&255;k=Q>>>0<8?Q:8;if((k|0)>0){z=A<<2;w=-1;y=0;v=1;do{P=v+z|0;O=c[Ha>>2]|0;P=(Ta(O+224|0,O+((na?P+16|0:P)+136)|0)|0)&255;a[Ga+y>>0]=P;if(!(P<<24>>24))v=((v+-1|0)>>>0<2&1)+v|0;else{w=(w|0)==-1?y:w;v=0}y=y+1|0}while((y|0)<(k|0));P=w}else{P=-1;v=1}y=Q+-1|0;O=a[Fa+y>>0]|0;w=O&255;do if(!(a[Aa>>0]|0)){if((c[aa>>2]|0)==1?ca&(ba&(c[(c[Ia>>2]|0)+13104>>2]|0)!=0):0){w=0;break}w=(j-w|0)>3&1}else w=0;while(0);if((P|0)!=-1){M=c[Ha>>2]|0;M=Ta(M+224|0,M+((na?A|4:A)|160)|0)|0;N=Ga+P|0;a[N>>0]=(d[N>>0]|0)+M}N=(w|0)!=0;k=N&(a[(c[da>>2]|0)+4>>0]|0)!=0;M=k?y&255:x;k=k?17:16;y=M&255;if(!(M<<24>>24))w=0;else{x=0;w=0;do{w=Va((c[Ha>>2]|0)+224|0)|0|w<<1;x=x+1|0}while((x|0)!=(y|0))}M=E<<2;K=F<<2;L=La+199+t|0;F=0;E=0;G=w<>0]|0)+M|0;I=(d[va+I>>0]|0)+K|0;do if((J|0)<8){B=(d[Ga+J>>0]|0)+1|0;A=(J|0)==(P|0);if((B|0)==((A?3:2)|0)&0==((A?0:0)|0))w=0;else{A=E;z=j;w=B;x=0;break}while(1){if(!(Va((c[Ha>>2]|0)+224|0)|0)){Ca=106;break}w=w+1|0;if((w|0)>=31){Ca=109;break}}do if((Ca|0)==106){Ca=0;if((w|0)>=3){Ca=109;break}if((j|0)>0){y=0;x=0}else{x=0;break}do{x=Va((c[Ha>>2]|0)+224|0)|0|x<<1;y=y+1|0}while((y|0)!=(j|0))}while(0);if((Ca|0)==109){Ca=0;k=w+-3|0;y=k+j|0;if((y|0)>0){w=0;x=0;do{w=Va((c[Ha>>2]|0)+224|0)|0|w<<1;x=x+1|0}while((x|0)!=(y|0))}else w=0;x=w;w=(1<>31|0,B|0,0)|0;x=C;B=3<>31;y=c[(c[Ia>>2]|0)+13116>>2]|0;if((x|0)>(z|0)|(x|0)==(z|0)&w>>>0>B>>>0){z=j+1|0;z=(y|0)==0?((z|0)<4?z:4):z}else z=j;if((E|0)!=0|(y|0)==0){A=E;break}k=a[L>>0]|0;y=(k&255)>>>2&255;if((A|0)<(3<>24==0|(A<<1|0)>=(1<>0]=y+k<<24>>24;A=1}else{w=0;while(1){if(!(Va((c[Ha>>2]|0)+224|0)|0)){Ca=120;break}w=w+1|0;if((w|0)>=31){Ca=123;break}}do if((Ca|0)==120){Ca=0;if((w|0)>=3){Ca=123;break}if((j|0)>0){y=0;x=0}else{x=0;break}do{x=Va((c[Ha>>2]|0)+224|0)|0|x<<1;y=y+1|0}while((y|0)!=(j|0))}while(0);if((Ca|0)==123){Ca=0;k=w+-3|0;y=k+j|0;if((y|0)>0){w=0;x=0;do{w=Va((c[Ha>>2]|0)+224|0)|0|w<<1;x=x+1|0}while((x|0)!=(y|0))}else w=0;x=w;w=(1<>31;y=c[(c[Ia>>2]|0)+13116>>2]|0;if((z|0)>=(3<>0]|0;y=(k&255)>>>2&255;if((z|0)<(3<>24==0|(z<<1|0)>=(1<>0]=y+k<<24>>24;A=1;z=j}while(0);if(N&(a[(c[da>>2]|0)+4>>0]|0)!=0){j=Jf(w|0,x|0,F|0,0)|0;F=(j&1|0)==0?1:D<<24>>24!=O<<24>>24;E=Hf(0,0,w|0,x|0)|0;w=F?w:E;x=F?x:C}else j=F;k=(G&32768|0)==0;y=Hf(0,0,w|0,x|0)|0;y=k?w:y;x=k?x:C;k=G<<1&131070;w=y&65535;do if(!(a[Aa>>0]|0)){do if(!((a[(c[Ia>>2]|0)+634>>0]|0)==0|ha)){if(!(ga|(I|H|0)!=0)){o=U;break}switch(i|0){case 3:{o=(I<<3)+H|0;break}case 4:{o=(I>>>1<<3)+(H>>>1)|0;break}case 5:{o=(I>>>2<<3)+(H>>>2)|0;break}default:o=(I<<2)+H|0}o=d[wa+o>>0]|0}while(0);w=Of(y|0,x|0,n|0,ea|0)|0;w=Of(w|0,C|0,o|0,((o|0)<0)<<31>>31|0)|0;w=Jf(w|0,C|0,h|0,fa|0)|0;w=Gf(w|0,C|0,g|0)|0;x=C;if((x|0)<0){w=(w&-32768|0)==-32768&(x&268435455|0)==268435455?w&65535:-32768;break}else{G=x>>>0<0|(x|0)==0&w>>>0<32767;w=G?w:32767;w=w&65535;break}}while(0);b[Ka+((I<>1]=w;w=J+1|0;if((w|0)==(Q|0))break;F=j;E=A;G=k;j=z;J=w;D=a[Fa+w>>0]|0}}if((S|0)>0)S=S+-1|0;else break}}do if(a[Aa>>0]|0){if((Da|16|0)==26?(c[(c[Ia>>2]|0)+13104>>2]|0)!=0:0)xa[c[f+2632>>2]&7](Ka,i&65535,(Da|0)==26&1)}else{g=(i|0)==2;if(ya|0){if(g&(c[(c[Ia>>2]|0)+13096>>2]|0)!=0?(c[La+31244>>2]|0)==1:0){g=0;do{Fa=Ka+(15-g<<1)|0;Ga=b[Fa>>1]|0;Ha=Ka+(g<<1)|0;b[Fa>>1]=b[Ha>>1]|0;b[Ha>>1]=Ga;g=g+1|0}while((g|0)!=8)}g=i&65535;ta[c[f+2628>>2]&7](Ka,g);if(!(c[(c[Ia>>2]|0)+13104>>2]|0))break;if(!((Da|16|0)==26?(c[La+31244>>2]|0)==1:0))break;xa[c[f+2632>>2]&7](Ka,g,(Da|0)==26&1);break}if(g&(Ba&(c[La+31244>>2]|0)==1)){sa[c[f+2636>>2]&7](Ka);break}h=(q|0)>(s|0)?q:s;if(!h){sa[c[f+2656+(za<<2)>>2]&7](Ka);break}g=s+4+q|0;do if((h|0)>=4)if((h|0)<8){g=(g|0)<8?g:8;break}else{g=(h|0)<12?((g|0)<24?g:24):g;break}else g=(g|0)<4?g:4;while(0);ta[c[f+2640+(za<<2)>>2]&7](Ka,g)}while(0);if(a[La+304>>0]|0?(Ja|0)>0:0){h=c[La+284>>2]|0;g=0;do{La=Ka+(g<<1)|0;b[La>>1]=((R(b[Na+(g<<1)>>1]|0,h)|0)>>>3)+(e[La>>1]|0);g=g+1|0}while((g|0)!=(Ja|0))}xa[c[f+2612+(za<<2)>>2]&7](Ma,Ka,Oa);l=Pa;return}function rb(a,b){a=a|0;b=b|0;a=c[a+136>>2]|0;return Ta(a+224|0,a+(b|0?47:46)|0)|0}function sb(a){a=a|0;var b=0;b=0-(tb(a)|0)&7;if(b|0)Rd(a,b);return}function tb(a){a=a|0;return c[a+8>>2]|0}function ub(a){a=a|0;var b=0;b=c[a+12>>2]|0;return b-(tb(a)|0)|0}function vb(a){a=a|0;var b=0,d=0;b=c[a+16>>2]|0;d=c[a>>2]|0;b=(d&1|0)==0?b:b+-1|0;b=(d&511|0)==0?b:b+-1|0;d=(c[a+20>>2]|0)-b|0;if((d|0)>=0)Md(a,b,d);return}function wb(a){a=a|0;var b=0,d=0,e=0;d=a+4|0;e=c[d>>2]|0;b=(e+-256|0)>>>31;c[d>>2]=e<>2]<>2]=b;if(!(b&65535))xb(a);return}function xb(a){a=a|0;var b=0,e=0;b=a+16|0;e=c[b>>2]|0;c[a>>2]=(c[a>>2]|0)+-65535+((d[e+1>>0]|0)<<1|(d[e>>0]|0)<<9);if(e>>>0<(c[a+20>>2]|0)>>>0)c[b>>2]=e+2;return}function yb(a){a=a|0;var b=0,e=0,f=0;f=c[a>>2]|0;e=a+16|0;b=c[e>>2]|0;c[a>>2]=(((d[b+1>>0]|0)<<1|(d[b>>0]|0)<<9)+-65535<<7-(d[4741+((f+-1^f)>>15)>>0]|0))+f;if(b>>>0<(c[a+20>>2]|0)>>>0)c[e>>2]=b+2;return}function zb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;d=Ab(b,d,e)|0;f=c[b+136>>2]|0;e=c[f+280>>2]|0;if(e){g=c[(c[b+200>>2]|0)+13192>>2]|0;b=d+52+e+(g<<1)|0;d=b+((b|0)>0?0:-52-g+1|0)|0;d=((d|0)%(g+52|0)|0)-g+b-d|0}a[f+272>>0]=d;return}function Ab(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=c[b+136>>2]|0;m=c[b+200>>2]|0;j=c[m+13080>>2]|0;i=(1<>2]|0)+24>>2]|0);h=j&d;j=j&e;k=c[m+13140>>2]|0;m=c[m+13064>>2]|0;l=h>>m;m=j>>m;f=g+203|0;if((a[f>>0]|0)!=0|(h|j|0)==0){a[f>>0]=(a[g+300>>0]|0)==0&1;f=a[b+2112>>0]|0}else f=c[g+276>>2]|0;if((i&d|0)!=0&(h&i|0)!=0){g=l+-1+(R(m,k)|0)|0;g=a[(c[b+4316>>2]|0)+g>>0]|0}else g=f;if((i&e|0)!=0&(j&i|0)!=0){f=(R(m+-1|0,k)|0)+l|0;f=a[(c[b+4316>>2]|0)+f>>0]|0}return g+1+f>>1|0}function Bb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=c[b+136>>2]|0;l=b+200|0;g=(e|0)>0&(e&7|0)==0;do if(g){if(((a[b+2062>>0]|0)==0?c[k+31312>>2]&4|0:0)?((e|0)%(1<>2]|0)+13080>>2]|0)|0|0)==0:0)break;if((a[(c[b+204>>2]|0)+53>>0]|0)==0?(c[k+31312>>2]&8|0)!=0:0){if(!((e|0)%(1<>2]|0)+13080>>2]|0)|0))break}else m=8;if((m|0)==8?!g:0)break;h=1<>2]|0)+(g+d+(R(c[j>>2]|0,e)|0)>>2)>>0]=2;g=g+4|0}while((g|0)<(h|0))}}while(0);g=(d|0)>0&(d&7|0)==0;do if(g){if(((a[b+2062>>0]|0)==0?c[k+31312>>2]&1|0:0)?((d|0)%(1<>2]|0)+13080>>2]|0)|0|0)==0:0)break;if((a[(c[b+204>>2]|0)+53>>0]|0)==0?(c[k+31312>>2]&2|0)!=0:0){if(!((d|0)%(1<>2]|0)+13080>>2]|0)|0))break}else m=19;if((m|0)==19?!g:0)break;j=1<>2]|0)+((R(c[h>>2]|0,g+e|0)|0)+d>>2)>>0]=2;g=g+4|0}while((g|0)<(j|0))}}while(0);return}function Cb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;g=b+200|0;j=((c[(c[g>>2]|0)+13120>>2]|0)-f|0)<=(d|0);Db(b,d,e);g=c[g>>2]|0;if(!(a[g+12941>>0]|0)){}else{g=((c[g+13124>>2]|0)-f|0)<=(e|0);h=(e|0)!=0;i=(d|0)!=0;if(i&h)Eb(b,d-f|0,e-f|0);if(i&g)Eb(b,d-f|0,e);h&j?(Eb(b,d,e-f|0),a[b+140>>0]&1):0;j&g?(Eb(b,d,e),a[b+140>>0]&1):0}return}function Db(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0;_=l;l=l+32|0;U=_+8|0;N=_;X=_+18|0;Y=_+16|0;b[X>>1]=0;b[Y>>1]=0;Z=e+200|0;k=c[Z>>2]|0;h=c[k+13080>>2]|0;j=1<>h,c[k+13128>>2]|0)|0)+(f>>h)|0;i=c[e+2508>>2]|0;T=c[i+(h<<3)+4>>2]|0;M=c[i+(h<<3)>>2]|0;if((c[k+68>>2]|0)!=0?(a[k+13056>>0]|0)!=0:0)W=1;else W=(a[(c[e+204>>2]|0)+40>>0]|0)!=0;V=(f|0)!=0;if(V){L=h+-1|0;O=c[i+(L<<3)+4>>2]|0;L=c[i+(L<<3)>>2]|0}else{O=0;L=0}K=j+f|0;Q=c[k+13120>>2]|0;S=(K|0)>(Q|0)?Q:K;P=j+g|0;J=c[k+13124>>2]|0;P=(P|0)>(J|0)?J:P;K=(Q|0)<=(K|0)?S:S+-8|0;Q=(P|0)>(g|0);if(Q){w=V?f:8;x=(w|0)<(S|0);y=V?f+-8|0:0;z=e+4320|0;A=e+2596|0;B=N+4|0;C=e+160|0;D=X+1|0;E=Y+1|0;F=e+4300|0;G=e+4284|0;H=e+4324|0;I=e+4304|0;J=e+4288|0;v=(y|0)>=(K|0);u=g;i=T;h=M;do{if(x){q=u+4|0;r=i+-2&-2;p=w;do{m=c[H>>2]|0;t=c[A>>2]|0;j=a[m+((R(t,u)|0)+p>>2)>>0]|0;k=j&255;t=a[m+((R(t,q)|0)+p>>2)>>0]|0;m=t&255;n=t<<24>>24==0;do if((t|j)<<24>>24){s=p+-1|0;o=Kb(e,s,u)|0;o=o+1+(Kb(e,p,u)|0)>>1;t=o+h|0;t=d[1509+((t|0)<0?0:(t|0)<51?t:51)>>0]|0;if(!(j<<24>>24))j=0;else{j=r+(k<<1)+o|0;j=d[1561+((j|0)<0?0:(j|0)<53?j:53)>>0]|0}c[N>>2]=j;if(n)j=0;else{j=r+(m<<1)+o|0;j=d[1561+((j|0)<0?0:(j|0)<53?j:53)>>0]|0}c[B>>2]=j;o=c[C>>2]|0;j=c[o+32>>2]|0;k=R(j,u)|0;k=(c[o>>2]|0)+((p<>2]|0)+56>>2])+k)|0;if(W){a[X>>0]=Lb(e,s,u)|0;a[D>>0]=Lb(e,s,q)|0;a[Y>>0]=Lb(e,p,u)|0;a[E>>0]=Lb(e,p,q)|0;Aa[c[I>>2]&3](k,j,t,N,X,Y);break}else{Aa[c[J>>2]&3](k,j,t,N,X,Y);break}}while(0);p=p+8|0}while((p|0)<(S|0))}if(!((u|0)==0|v)){s=u+-1|0;r=y;do{n=c[z>>2]|0;t=R(c[A>>2]|0,u)|0;j=a[n+(t+r>>2)>>0]|0;m=j&255;q=r+4|0;t=a[n+(t+q>>2)>>0]|0;n=t&255;o=t<<24>>24==0;do if((t|j)<<24>>24){k=Kb(e,r,s)|0;k=k+1+(Kb(e,r,u)|0)>>1;h=(r|0)>=(f|0);i=h?T:O;h=h?M:L;p=k+h|0;p=d[1509+((p|0)<0?0:(p|0)<51?p:51)>>0]|0;if(!(j<<24>>24))j=0;else{j=(i+-2&-2)+(m<<1)+k|0;j=d[1561+((j|0)<0?0:(j|0)<53?j:53)>>0]|0}c[N>>2]=j;if(o)j=0;else{j=(i+-2&-2)+(n<<1)+k|0;j=d[1561+((j|0)<0?0:(j|0)<53?j:53)>>0]|0}c[B>>2]=j;t=c[C>>2]|0;j=c[t+32>>2]|0;k=R(j,u)|0;k=(c[t>>2]|0)+((r<>2]|0)+56>>2])+k)|0;if(W){a[X>>0]=Lb(e,r,s)|0;a[D>>0]=Lb(e,q,s)|0;a[Y>>0]=Lb(e,r,u)|0;a[E>>0]=Lb(e,q,u)|0;Aa[c[F>>2]&3](k,j,p,N,X,Y);break}else{Aa[c[G>>2]&3](k,j,p,N,X,Y);break}}while(0);r=r+8|0}while((r|0)<(K|0))}u=u+8|0}while((u|0)<(P|0));k=c[Z>>2]|0}else i=T;a:do if(c[k+4>>2]|0){z=V?O:T;A=e+4320|0;B=e+2596|0;C=U+4|0;D=e+160|0;E=X+1|0;F=Y+1|0;G=e+4308|0;H=e+4292|0;I=e+4324|0;J=e+4312|0;K=e+4296|0;h=1;while(1){j=1<>2];k=1<>2];if(Q){u=j<<3;v=V?f:u;w=(v|0)<(S|0);x=k<<3;y=V?f-u|0:0;t=j<<2;s=k<<2;r=g;do{if(w){o=r+s|0;n=v;do{O=c[I>>2]|0;k=c[B>>2]|0;j=a[O+((R(k,r)|0)+n>>2)>>0]|0;j=j<<24>>24==2;k=(a[O+((R(k,o)|0)+n>>2)>>0]|0)==2;do if(j|k){p=n+-1|0;m=Kb(e,p,o)|0;m=m+1+(Kb(e,n,o)|0)>>1;if(j){j=Kb(e,p,r)|0;j=Mb(e,j+1+(Kb(e,n,r)|0)>>1,h,i)|0}else j=0;c[U>>2]=j;if(k)j=Mb(e,m,h,i)|0;else j=0;c[C>>2]=j;N=c[D>>2]|0;O=c[Z>>2]|0;j=c[N+32+(h<<2)>>2]|0;k=R(r>>c[O+13180+(h<<2)>>2],j)|0;k=(c[N+(h<<2)>>2]|0)+((n>>c[O+13168+(h<<2)>>2]<>2])+k)|0;if(W){a[X>>0]=Lb(e,p,r)|0;a[E>>0]=Lb(e,p,o)|0;a[Y>>0]=Lb(e,n,r)|0;a[F>>0]=Lb(e,n,o)|0;ra[c[J>>2]&3](k,j,U,X,Y);break}else{ra[c[K>>2]&3](k,j,U,X,Y);break}}while(0);n=n+u|0}while((n|0)<(S|0))}if(r){n=S-((S|0)==(c[(c[Z>>2]|0)+13120>>2]|0)?0:u)|0;if((y|0)<(n|0)){p=r+-1|0;o=y;do{O=c[A>>2]|0;k=R(c[B>>2]|0,r)|0;q=o+t|0;i=(a[O+(k+o>>2)>>0]|0)==2;k=(a[O+(k+q>>2)>>0]|0)==2;do if(i|k){if(i){j=Kb(e,o,p)|0;j=j+1+(Kb(e,o,r)|0)>>1}else j=0;if(k){m=Kb(e,q,p)|0;m=m+1+(Kb(e,q,r)|0)>>1}else m=0;if(i)i=Mb(e,j,h,z)|0;else i=0;c[U>>2]=i;if(k)i=Mb(e,m,h,T)|0;else i=0;c[C>>2]=i;N=c[D>>2]|0;O=c[Z>>2]|0;i=c[N+32+(h<<2)>>2]|0;j=R(r>>c[O+13184>>2],i)|0;j=(c[N+(h<<2)>>2]|0)+((o>>c[O+13172>>2]<>2])+j)|0;if(W){a[X>>0]=Lb(e,o,p)|0;a[E>>0]=Lb(e,q,p)|0;a[Y>>0]=Lb(e,o,r)|0;a[F>>0]=Lb(e,q,r)|0;ra[c[G>>2]&3](j,i,U,X,Y);break}else{ra[c[H>>2]&3](j,i,U,X,Y);break}}while(0);o=o+u|0}while((o|0)<(n|0));i=z}else i=z}r=r+x|0}while((r|0)<(P|0))}h=h+1|0;if((h|0)==3)break a;k=c[Z>>2]|0}}while(0);l=_;return}function Eb(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0;ga=l;l=l+48|0;Z=ga+16|0;_=ga+34|0;ba=ga+32|0;da=ga+8|0;ea=ga;fa=d+200|0;x=c[fa>>2]|0;y=c[x+13080>>2]|0;T=e>>y;U=f>>y;s=c[x+13128>>2]|0;i=R(U,s)|0;V=i+T|0;k=c[d+204>>2]|0;m=c[k+1668>>2]|0;n=c[m+(V<<2)>>2]|0;W=d+2504|0;X=c[W>>2]|0;Y=X+(V*148|0)|0;b[_>>1]=0;b[ba>>1]=0;c[da>>2]=0;if(!(a[k+42>>0]|0))o=0;else o=(a[k+53>>0]|0)==0;t=(a[(c[d+4352>>2]|0)+V>>0]|0)==0;w=t|o;u=(T|0)==0;c[Z>>2]=u&1;q=(U|0)==0;$=Z+4|0;c[$>>2]=q&1;r=(T|0)==(s+-1|0);aa=Z+8|0;c[aa>>2]=r&1;v=(U|0)==((c[x+13132>>2]|0)+-1|0);ca=Z+12|0;c[ca>>2]=v&1;if(w){if(u)p=0;else{if(o){g=c[k+1676>>2]|0;g=(c[g+(n<<2)>>2]|0)!=(c[g+(c[m+(V+-1<<2)>>2]<<2)>>2]|0)}else g=0;h=g&1;if(t?(Q=c[d+4328>>2]|0,(c[Q+(V<<2)>>2]|0)!=(c[Q+(T+-1+i<<2)>>2]|0)):0)g=1;a[_>>0]=g&1;p=h}if(r)j=0;else{if(o){g=c[k+1676>>2]|0;g=(c[g+(n<<2)>>2]|0)!=(c[g+(c[m+(V+1<<2)>>2]<<2)>>2]|0)}else g=0;h=g&1;if(t?(Q=c[d+4328>>2]|0,(c[Q+(V<<2)>>2]|0)!=(c[Q+(T+1+i<<2)>>2]|0)):0)g=1;a[_+1>>0]=g&1;j=h}if(q)h=0;else{if(o){g=c[k+1676>>2]|0;g=(c[g+(n<<2)>>2]|0)!=(c[g+(c[m+(V-s<<2)>>2]<<2)>>2]|0)}else g=0;h=g&1;if(t?(Q=c[d+4328>>2]|0,(c[Q+(V<<2)>>2]|0)!=(c[Q+((R(s,U+-1|0)|0)+T<<2)>>2]|0)):0)g=1;a[ba>>0]=g&1}if(v)g=0;else{if(o){i=c[k+1676>>2]|0;i=(c[i+(n<<2)>>2]|0)!=(c[i+(c[m+(s+V<<2)>>2]<<2)>>2]|0)}else i=0;g=i&1;if(t?(Q=c[d+4328>>2]|0,(c[Q+(V<<2)>>2]|0)!=(c[Q+((R(s,U+1|0)|0)+T<<2)>>2]|0)):0)i=1;a[ba+1>>0]=i&1}if(!(q|u)){if(t){Q=c[d+4328>>2]|0;if(p<<24>>24==0?(c[Q+(V<<2)>>2]|0)==(c[Q+(T+-1+(R(s,U+-1|0)|0)<<2)>>2]|0):0)S=36;else i=1}else if(!(p<<24>>24))S=36;else i=1;if((S|0)==36)i=h;a[da>>0]=i}if(!(r|q)){if(t){Q=c[d+4328>>2]|0;if(j<<24>>24==0?(c[Q+(V<<2)>>2]|0)==(c[Q+(T+1+(R(s,U+-1|0)|0)<<2)>>2]|0):0)S=42;else h=1}else if(!(j<<24>>24))S=42;else h=1;a[da+1>>0]=h}if(!(v|r)){if(t){Q=c[d+4328>>2]|0;if(j<<24>>24==0?(c[Q+(V<<2)>>2]|0)==(c[Q+(T+1+(R(s,U+1|0)|0)<<2)>>2]|0):0)S=48;else h=1}else if(!(j<<24>>24))S=48;else h=1;if((S|0)==48)h=g;a[da+2>>0]=h}if(!(v|u)){if(t){Q=c[d+4328>>2]|0;if(p<<24>>24==0?(c[Q+(V<<2)>>2]|0)==(c[Q+(T+-1+(R(s,U+1|0)|0)<<2)>>2]|0):0)S=54;else g=1}else if(!(p<<24>>24))S=54;else g=1;a[da+3>>0]=g}}D=c[x+4>>2]|0?3:1;E=d+160|0;F=d+168|0;G=d+2672|0;M=U<<1;H=M+-1|0;I=ea+4|0;J=U+-1|0;K=T+1|0;L=T+-1|0;M=M+2|0;N=ea+4|0;O=U+1|0;Q=T<<1;P=Q+-1|0;Q=Q+2|0;C=d+2676+((w&1)<<2)|0;g=0;i=x;h=y;while(1){n=c[i+13168+(g<<2)>>2]|0;z=e>>n;q=c[i+13180+(g<<2)>>2]|0;A=f>>q;r=c[E>>2]|0;B=c[r+32+(g<<2)>>2]|0;w=1<>n;t=w>>q;n=c[i+13120>>2]>>n;v=n-z|0;s=(s|0)>(v|0)?v:s;q=c[i+13124>>2]>>q;v=q-A|0;t=(t|0)>(v|0)?v:t;v=R(B,A)|0;u=c[i+56>>2]|0;v=(c[r+(g<<2)>>2]|0)+((z<>2]|0)+w+r|0;y=X+(V*148|0)+142+g|0;switch(a[y>>0]|0){case 1:{Fb(x,v,s<>2]&1](v,x,B,w,Y,Z,s,t,g);Hb(d,v,x,B,w,e,f,s,t,g);S=78;break}case 2:{o=c[Z>>2]|0;p=c[aa>>2]|0;k=c[ca>>2]|0;if(!(c[$>>2]|0)){S=1-o|0;j=0-(S<>2]=v+(0-B)+j;c[I>>2]=(c[d+172+(g<<2)>>2]|0)+((R(n,H)|0)+z-S<>2]|0)+((L+(R(c[i+13128>>2]|0,J)|0)|0)*148|0)+142+g>>0]|0)==3&1)<<2)>>2]|0,u);j=r;h=c[fa>>2]|0}i=s<>2]|0)+(((R(c[h+13128>>2]|0,J)|0)+T|0)*148|0)+142+g>>0]|0)==3&1)<<2)>>2]|0)+j|0,i|0)|0;if((p|0)!=1){S=j+i|0;Ib(m+S|0,(c[ea+(((a[(c[W>>2]|0)+((K+(R(c[(c[fa>>2]|0)+13128>>2]|0,J)|0)|0)*148|0)+142+g>>0]|0)==3&1)<<2)>>2]|0)+S|0,u)}}if(!k){S=1-o|0;m=0-(S<>2]=v+(R(t,B)|0)+m;c[N>>2]=(c[d+172+(g<<2)>>2]|0)+((R(n,M)|0)+z-S<>2]|0)+((L+(R(c[(c[fa>>2]|0)+13128>>2]|0,O)|0)|0)*148|0)+142+g>>0]|0)==3&1)<<2)>>2]|0,u);h=r}i=s<>2]|0)+(((R(c[(c[fa>>2]|0)+13128>>2]|0,O)|0)+T|0)*148|0)+142+g>>0]|0)==3&1)<<2)>>2]|0)+h|0,i|0)|0;if((p|0)!=1){S=h+i|0;Ib(j+S|0,(c[ea+(((a[(c[W>>2]|0)+((K+(R(c[(c[fa>>2]|0)+13128>>2]|0,O)|0)|0)*148|0)+142+g>>0]|0)==3&1)<<2)>>2]|0)+S|0,u)}}if(!o)if((a[(c[W>>2]|0)+((L+(R(c[(c[fa>>2]|0)+13128>>2]|0,U)|0)|0)*148|0)+142+g>>0]|0)==3){i=(R(q,P)|0)+A<>2]|0)+i|0,u,t,w,r);i=0}else i=1;else i=0;if(!p)if((a[(c[W>>2]|0)+((K+(R(c[(c[fa>>2]|0)+13128>>2]|0,U)|0)|0)*148|0)+142+g>>0]|0)==3){h=(R(q,Q)|0)+A<>2]|0)+h|0,u,t,w,r);h=0}else h=1;else h=0;S=0-(i<>2]&3](v,x,B,w,Y,Z,s,t,g,_,ba,da);Hb(d,v,x,B,w,e,f,s,t,g);S=78;break}default:{}}if((S|0)==78){S=0;a[y>>0]=3}g=g+1|0;if((g|0)>=(D|0))break;h=c[fa>>2]|0;i=h;h=c[h+13080>>2]|0}l=ga;return}function Fb(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0;if((d|0)>0){g=0;while(1){Pf(a|0,b|0,c|0)|0;g=g+1|0;if((g|0)==(d|0))break;else{a=a+e|0;b=b+f|0}}}return}function Gb(a,b,d,e,f,g,h,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0;m=c[a+200>>2]|0;l=c[m+56>>2]|0;o=c[m+13120>>2]>>c[m+13168+(i<<2)>>2];m=c[m+13124>>2]>>c[m+13180+(i<<2)>>2];p=a+172+(i<<2)|0;n=k<<1;k=g<>2]|0)+((R(o,n)|0)+e<>2]|0)+((R(o,n|1)|0)+e<>2]|0)+((R(m,j)|0)+f<>2]|0)+((R(m,j|1)|0)+f<>2]|0;if(!(a[(c[b+204>>2]|0)+40>>0]|0)){if(a[m+13056>>0]|0?c[m+68>>2]|0:0)n=4}else n=4;if((n|0)==4?(y=c[m+13084>>2]|0,o=1<>2]|0,v=c[m+13180+(l<<2)>>2]|0,w=h>>y,p=i>>y,x=j+h>>y,y=k+i>>y,z=o>>u<>2],(p|0)<(y|0)):0){s=(w|0)<(x|0);r=b+4348|0;o=o>>v;q=(o|0)>0;n=p;do{if(s){b=n-i|0;l=w;do{m=c[t>>2]|0;if(a[(c[r>>2]|0)+((R(c[m+13156>>2]|0,n)|0)+l)>>0]|0?(B=c[m+13084>>2]|0,A=b<>v,B=l-h<>u<>2],q):0){m=d+(R(A,f)|0)+B|0;j=0;k=e+(R(A,g)|0)+B|0;while(1){Pf(m|0,k|0,z|0)|0;j=j+1|0;if((j|0)==(o|0))break;else{m=m+f|0;k=k+g|0}}}l=l+1|0}while((l|0)!=(x|0))}n=n+1|0}while((n|0)!=(y|0))}return}function Ib(c,d,e){c=c|0;d=d|0;e=e|0;if(!e)a[c>>0]=a[d>>0]|0;else b[c>>1]=b[d>>1]|0;return}function Jb(c,d,e,f,g,h){c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;i=(f|0)>0;if(!e){if(i){e=0;while(1){a[c>>0]=a[d>>0]|0;e=e+1|0;if((e|0)==(f|0))break;else{c=c+g|0;d=d+h|0}}}}else if(i){e=0;while(1){b[c>>1]=b[d>>1]|0;e=e+1|0;if((e|0)==(f|0))break;else{c=c+g|0;d=d+h|0}}}return}function Kb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=c[b+200>>2]|0;f=c[g+13064>>2]|0;return a[(c[b+4316>>2]|0)+((R(c[g+13140>>2]|0,e>>f)|0)+(d>>f))>>0]|0}function Lb(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;h=c[a+200>>2]|0;i=c[h+13084>>2]|0;if(((e|b|0)>=0?(j=b>>i,f=e>>i,g=c[h+13156>>2]|0,(j|0)<(g|0)):0)?(f|0)<(c[h+13160>>2]|0):0){j=(R(g,f)|0)+j|0;a=d[(c[a+4348>>2]|0)+j>>0]|0}else a=2;return a|0}function Mb(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0;g=c[a+204>>2]|0;b=(c[((e|0)==1?g+28|0:g+32|0)>>2]|0)+b|0;b=(b|0)<0?0:(b|0)<57?b:57;do if((c[(c[a+200>>2]|0)+4>>2]|0)==1){if((b|0)>=30)if((b|0)>43){b=b+-6|0;break}else{b=d[1615+(b+-30)>>0]|0;break}}else b=(b|0)<0?0:(b|0)<51?b:51;while(0);g=f+2+b|0;return d[1561+((g|0)<0?0:(g|0)<53?g:53)>>0]|0|0}function Nb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=c[a+200>>2]|0;i=((c[f+13120>>2]|0)-e|0)<=(b|0);f=((c[f+13124>>2]|0)-e|0)<=(d|0);g=(d|0)!=0;h=(b|0)!=0;if(h&g)Cb(a,b-e|0,d-e|0,e);if(g&i)Cb(a,b,d-e|0,e);if(h&f)Cb(a,b-e|0,d,e);return}function Ob(b){b=b|0;var d=0,e=0,f=0;f=c[b+60>>2]|0;Nd();Ec();d=tc(b)|0;if((d|0)>=0){c[f+4368>>2]=0;c[f+4520>>2]=0;e=c[b+808>>2]|0;if(!(e&2))d=1;else d=c[b+800>>2]&255;a[f+141>>0]=d;if((e&1|0)!=0?(c[b+800>>2]|0)>1:0)d=1;else d=2;a[f+140>>0]=d;d=0}return d|0}function Pb(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=c[a+60>>2]|0;j=g+28|0;a=c[j>>2]|0;if(!a){a=Dc(h,d,1)|0;if((a|0)>=0){c[f>>2]=a;a=0}}else{c[h+2520>>2]=0;i=h+4524|0;b[i>>1]=1;a=Tb(h,c[g+24>>2]|0,a)|0;if((a|0)>=0){a=h+2604|0;if(c[a>>2]|0)c[a>>2]=0;a=c[h+164>>2]|0;if(c[a+304>>2]|0){h=a+128|0;c[h>>2]=e[i>>1];c[h+4>>2]=0;ye(d,a);c[f>>2]=1}a=c[j>>2]|0}}return a|0}function Qb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;g=c[b+60>>2]|0;Sb(g);h=g+4412|0;d=g+4392|0;if((c[h>>2]|0)>0){b=0;do{be((c[d>>2]|0)+(b<<2)|0);b=b+1|0}while((b|0)<(c[h>>2]|0))}be(g+4396|0);be(g+4388|0);be(d);be(g+152|0);be(g+168|0);b=0;do{be(g+172+(b<<2)|0);be(g+184+(b<<2)|0);b=b+1|0}while((b|0)!=3);we(g+164|0);b=g+2524|0;yc(g,b,-1);we(b);b=0;do{pe(g+208+(b<<2)|0);b=b+1|0}while((b|0)!=16);b=0;do{pe(g+272+(b<<2)|0);b=b+1|0}while((b|0)!=32);b=0;do{pe(g+400+(b<<2)|0);b=b+1|0}while((b|0)!=256);c[g+200>>2]=0;c[g+204>>2]=0;c[g+196>>2]=0;pe(g+1424|0);be(g+2096|0);be(g+2100|0);be(g+2104|0);f=g+141|0;b=a[f>>0]|0;if((b&255)>1){e=1;do{d=g+72+(e<<2)|0;if(c[d>>2]|0){be(d);be(g+8+(e<<2)|0);b=a[f>>0]|0}e=e+1|0}while((e|0)<(b&255|0))}b=g+136|0;d=g+72|0;if((c[b>>2]|0)==(c[d>>2]|0))c[b>>2]=0;be(d);d=g+4404|0;if((c[h>>2]|0)>0){b=0;do{be((c[d>>2]|0)+(b<<4)|0);b=b+1|0}while((b|0)<(c[h>>2]|0))}be(d);c[h>>2]=0;return 0}function Rb(a){a=a|0;a=c[a+60>>2]|0;Ac(a);c[a+2592>>2]=2147483647;return}function Sb(a){a=a|0;be(a+2504|0);be(a+2508|0);be(a+4332|0);be(a+4336|0);be(a+4340|0);be(a+4344|0);be(a+4348|0);be(a+4316|0);be(a+4328|0);be(a+4352|0);be(a+4320|0);be(a+4324|0);be(a+2096|0);be(a+2104|0);be(a+2100|0);return}function Tb(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;y=b+2520|0;c[y>>2]=0;u=b+2584|0;c[b+2588>>2]=c[u>>2];c[u>>2]=0;x=b+4408|0;c[x>>2]=0;a:do if((f|0)>3){v=b+4470|0;k=b+4412|0;l=b+4396|0;m=b+4384|0;n=b+4392|0;o=b+4380|0;p=b+4404|0;q=b+4376|0;w=b+4388|0;r=b+136|0;s=b+2512|0;t=b+4480|0;while(1){j=(a[v>>0]|0)==0;if(!j){i=c[t>>2]|0;if((i|0)>0){h=0;g=0;do{g=d[e+h>>0]|g<<8;h=h+1|0}while((h|0)<(i|0))}else g=0;f=f-i|0;if((g|0)>(f|0)){e=-1094995529;break a}else{i=e+i|0;h=f}}else{while(1){g=e+1|0;if(((a[e>>0]|0)==0?(a[g>>0]|0)==0:0)?(a[e+2>>0]|0)==1:0)break;if((f|0)<5){e=-1094995529;break a}else{e=g;f=f+-1|0}}g=0;i=e+3|0;h=f+-3|0}g=j?h:g;e=c[k>>2]|0;f=c[x>>2]|0;if((e|0)<=(f|0)){e=e+1|0;f=ce(c[p>>2]|0,e,16)|0;if(!f){e=-12;break a}c[p>>2]=f;j=c[k>>2]|0;Kf(f+(j<<4)|0,0,e-j<<4|0)|0;de(w,e,4)|0;de(l,e,4)|0;de(n,e,4)|0;f=c[l>>2]|0;c[f+(c[k>>2]<<2)>>2]=1024;f=he(c[f+(c[k>>2]<<2)>>2]|0,4)|0;c[(c[n>>2]|0)+(c[k>>2]<<2)>>2]=f;c[k>>2]=e;f=c[x>>2]|0}c[m>>2]=c[(c[l>>2]|0)+(f<<2)>>2];c[o>>2]=c[(c[n>>2]|0)+(f<<2)>>2];e=c[p>>2]|0;g=Ub(b,i,g,e+(f<<4)|0)|0;c[(c[w>>2]|0)+(c[x>>2]<<2)>>2]=c[q>>2];c[(c[l>>2]|0)+(c[x>>2]<<2)>>2]=c[m>>2];A=c[o>>2]|0;z=c[n>>2]|0;j=c[x>>2]|0;c[x>>2]=j+1;c[z+(j<<2)>>2]=A;if((g|0)<0){e=g;break a}e=Vb((c[r>>2]|0)+204|0,c[e+(f<<4)+12>>2]|0,c[e+(f<<4)+8>>2]|0)|0;if((e|0)<0)break a;Wb(b)|0;if((c[s>>2]&-2|0)==36)c[u>>2]=1;f=h-g|0;if((f|0)<=3)break;else e=i+g|0}if((c[x>>2]|0)>0){g=b+4376|0;h=b+4392|0;i=b+4380|0;j=b+4404|0;f=0;do{c[g>>2]=c[(c[w>>2]|0)+(f<<2)>>2];c[i>>2]=c[(c[h>>2]|0)+(f<<2)>>2];A=c[j>>2]|0;if((Xb(b,c[A+(f<<4)+12>>2]|0,c[A+(f<<4)+8>>2]|0)|0)<0)break a;f=f+1|0}while((f|0)<(c[x>>2]|0))}}else e=0;while(0);return e|0}function Ub(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;n=b+4376|0;c[n>>2]=0;a:do if((e|0)>1){g=0;while(1){if(!(a[d+g>>0]|0)){h=g+-1|0;if((g|0)>0)g=(a[d+h>>0]|0)==0?h:g;h=g+2|0;if(((h|0)<(e|0)?(a[d+(g+1)>>0]|0)==0:0)?(i=a[d+h>>0]|0,(i&255)<4):0)break}h=g+2|0;if((g+3|0)<(e|0))g=h;else break a}e=i<<24>>24==3?e:g;h=g}else h=0;while(0);b:do if((h|0)<(e+-1|0)){fe(f,f+4|0,e+32|0);o=c[f>>2]|0;if(!o)e=-12;else{Pf(o|0,d|0,h|0)|0;i=h+2|0;c:do if((i|0)<(e|0)){m=b+4384|0;l=b+4380|0;g=h;b=h;while(1){k=d+i|0;j=a[k>>0]|0;h=a[d+b>>0]|0;do if((j&255)<=3)if(!(h<<24>>24))if(!(a[d+(b+1)>>0]|0)){if(j<<24>>24!=3){i=g;e=b;break c}i=g+1|0;a[o+g>>0]=0;g=g+2|0;a[o+i>>0]=0;b=b+3|0;k=c[n>>2]|0;c[n>>2]=k+1;h=c[m>>2]|0;if((h|0)>(k|0)){h=c[l>>2]|0;if(!h)break}else{h=h<<1;c[m>>2]=h;de(l,h,4)|0;h=c[l>>2]|0;if(!h){e=-12;break b}}c[h+((c[n>>2]|0)+-1<<2)>>2]=i}else{h=0;p=26}else p=26;else{a[o+g>>0]=h;a[o+(g+1)>>0]=a[d+(b+1)>>0]|0;g=g+2|0;b=i;h=a[k>>0]|0;p=26}while(0);if((p|0)==26){p=0;a[o+g>>0]=h;g=g+1|0;b=b+1|0}i=b+2|0;if((i|0)>=(e|0)){p=15;break}}}else{g=h;b=h;p=15}while(0);if((p|0)==15)if((b|0)<(e|0)){i=e+g|0;h=b;while(1){a[o+g>>0]=a[d+h>>0]|0;h=h+1|0;if((h|0)==(e|0))break;else g=g+1|0}i=i-b|0}else{i=g;e=b}g=o+i|0;h=g+32|0;do{a[g>>0]=0;g=g+1|0}while((g|0)<(h|0));c[f+12>>2]=o;c[f+8>>2]=i}}else{c[f+12>>2]=d;c[f+8>>2]=e}while(0);return e|0}function Vb(a,b,c){a=a|0;b=b|0;c=c|0;return nc(a,b,c>>>0>268435455?-8:c<<3)|0}function Wb(a){a=a|0;var b=0,d=0;b=(c[a+136>>2]|0)+204|0;if(!(Sd(b)|0)){c[a+2512>>2]=Pd(b,6)|0;d=Pd(b,6)|0;b=(Pd(b,3)|0)+-1|0;c[a+2516>>2]=b;return ((b|0)<0?-1094995529:(d|0)==0&1)|0}else return -1094995529;return 0}function Xb(d,f,g){d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;f=Vb((c[d+136>>2]|0)+204|0,f,g)|0;a:do if((f|0)>=0){f=Wb(d)|0;b:do if((f|0)>=0){if(!f){f=0;break a}k=d+2512|0;switch(c[k>>2]|0){case 48:{f=fd(d)|0;if((f|0)<0)break b;else{f=0;break a}}case 34:{f=jd(d)|0;if((f|0)<0)break b;else{f=0;break a}}case 40:case 39:{f=pd(d)|0;if((f|0)<0)break b;else{f=0;break a}}case 9:case 8:case 7:case 6:case 21:case 20:case 19:case 18:case 17:case 16:case 5:case 4:case 3:case 2:case 0:case 1:{f=Yb(d)|0;if((f|0)<0)break a;i=d+2592|0;g=c[i>>2]|0;j=c[k>>2]|0;c:do if((g|0)==2147483647){switch(j|0){case 18:case 16:case 17:case 21:{g=c[d+2572>>2]|0;break}case 20:case 19:{g=-2147483648;break}default:{g=2147483647;break c}}c[i>>2]=g}while(0);h=(j|0)==9;if((j&-2|0)==8){if((c[d+2572>>2]|0)<=(g|0)){c[d+2604>>2]=0;f=0;break a}if(h)c[i>>2]=-2147483648}if(!(a[d+1448>>0]|0))if(!(c[d+2520>>2]|0))break b;else f=j;else{f=Zb(d)|0;if((f|0)<0)break a;f=c[k>>2]|0}if((f|0)!=(c[d+4416>>2]|0)){f=-1094995529;break a}f=_b(d)|0;k=c[d+200>>2]|0;if((f|0)>=(R(c[k+13132>>2]|0,c[k+13128>>2]|0)|0))c[d+2604>>2]=1;if((f|0)<0)break b;else{f=0;break a}}case 37:case 36:{f=d+4364|0;b[f>>1]=(e[f>>1]|0)+1&255;c[d+2592>>2]=2147483647;f=0;break a}default:{f=0;break a}}}while(0);f=(c[(c[d+4>>2]|0)+688>>2]&8|0)==0?0:f}while(0);return f|0}function Yb(f){f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=f+136|0;v=(c[u>>2]|0)+204|0;t=(Sd(v)|0)&255;m=f+1448|0;a[m>>0]=t;n=f+2512|0;g=c[n>>2]|0;if(!(t<<24>>24==0|(g+-16|0)>>>0>4)?(t=f+4364|0,b[t>>1]=(e[t>>1]|0)+1&255,c[f+2592>>2]=2147483647,(g+-19|0)>>>0<2):0){zc(f);g=c[n>>2]|0}l=f+2046|0;a[l>>0]=0;if((g&-8|0)==16)a[l>>0]=Sd(v)|0;g=Ud(v)|0;c[f+1428>>2]=g;a:do if(g>>>0<=255?(i=c[f+400+(g<<2)>>2]|0,(i|0)!=0):0){h=a[m>>0]|0;if(!(h<<24>>24)){g=f+204|0;i=c[i+4>>2]|0;if((c[g>>2]|0)!=(i|0)){g=-1094995529;break}t=g}else{t=f+204|0;i=c[i+4>>2]|0}c[t>>2]=i;j=c[n>>2]|0;k=(j|0)==21;if(k?(c[f+2588>>2]|0)==1:0)a[l>>0]=1;s=f+200|0;g=c[s>>2]|0;i=c[(c[f+272+(c[i>>2]<<2)>>2]|0)+4>>2]|0;if((g|0)!=(i|0)){c[s>>2]=i;do if(g|0?!(k|(j&-8|0)!=16):0){if(((c[i+13120>>2]|0)==(c[g+13120>>2]|0)?(c[i+13124>>2]|0)==(c[g+13124>>2]|0):0)?(c[i+76+(((c[i+72>>2]|0)+-1|0)*12|0)>>2]|0)==(c[g+76+(((c[g+72>>2]|0)+-1|0)*12|0)>>2]|0):0)break;a[l>>0]=0}while(0);zc(f);g=oc(f,c[s>>2]|0)|0;if((g|0)<0)break;g=f+4364|0;b[g>>1]=(e[g>>1]|0)+1&255;c[f+2592>>2]=2147483647;g=c[s>>2]|0;h=a[m>>0]|0}r=c[f+4>>2]|0;c[r+832>>2]=d[g+302>>0];c[r+836>>2]=d[g+335>>0];r=f+1449|0;a[r>>0]=0;do if(!(h<<24>>24)){if(a[(c[t>>2]|0)+41>>0]|0){a[r>>0]=Sd(v)|0;g=c[s>>2]|0}g=(R(c[g+13128>>2]<<1,c[g+13132>>2]|0)|0)+-2|0;o=g>>>0>65535;g=o?g>>>16:g;o=o?16:0;p=(g&65280|0)==0;g=Pd(v,(p?o:o|8)+(d[2334+(p?g:g>>>8)>>0]|0)|0)|0;c[f+1432>>2]=g;p=c[s>>2]|0;if(g>>>0>=(R(c[p+13132>>2]|0,c[p+13128>>2]|0)|0)>>>0){g=-1094995529;break a}if(a[r>>0]|0){g=f+156|0;if(!(a[g>>0]|0)){g=-1094995529;break a}else{p=g;break}}else{c[f+1436>>2]=g;i=f+2580|0;c[i>>2]=(c[i>>2]|0)+1;i=f+156|0;q=31;break}}else{c[f+1436>>2]=0;c[f+1432>>2]=0;c[f+2580>>2]=0;i=f+156|0;a[i>>0]=0;q=31}while(0);if((q|0)==31){a[i>>0]=0;if((c[(c[t>>2]|0)+1624>>2]|0)>0){g=0;do{Rd(v,1);g=g+1|0}while((g|0)<(c[(c[t>>2]|0)+1624>>2]|0))}g=Ud(v)|0;c[f+1440>>2]=g;if(g>>>0>=3){g=-1094995529;break}if(!((g|0)==2?1:(c[n>>2]&-8|0)!=16)){g=-1094995529;break}g=f+1450|0;a[g>>0]=1;if(a[(c[t>>2]|0)+39>>0]|0)a[g>>0]=Sd(v)|0;if(a[(c[s>>2]|0)+8>>0]|0)a[f+1451>>0]=Pd(v,2)|0;if(((c[n>>2]|0)+-19|0)>>>0>=2)oa();c[f+1620>>2]=0;c[f+2572>>2]=0;if(!(c[f+2516>>2]|0))c[f+2576>>2]=0;do if(a[(c[s>>2]|0)+12941>>0]|0){a[f+2056>>0]=Sd(v)|0;if(!(c[(c[s>>2]|0)+4>>2]|0)){a[f+2057>>0]=0;a[f+2058>>0]=0;break}else{p=(Sd(v)|0)&255;a[f+2058>>0]=p;a[f+2057>>0]=p;break}}else{a[f+2056>>0]=0;a[f+2057>>0]=0;a[f+2058>>0]=0}while(0);c[f+2052>>2]=0;c[f+2048>>2]=0;c[f+2068>>2]=pc(v)|0;g=c[t>>2]|0;if(!(a[g+36>>0]|0)){c[f+2072>>2]=0;h=0}else{c[f+2072>>2]=pc(v)|0;h=pc(v)|0;g=c[t>>2]|0}c[f+2076>>2]=h;if(!(a[g+1631>>0]|0))h=0;else{h=(Sd(v)|0)&255;g=c[t>>2]|0}a[f+2080>>0]=h;b:do if(!(a[g+55>>0]|0)){a[f+2061>>0]=0;c[f+2084>>2]=0;g=0;q=61}else{do if(a[g+56>>0]|0){if(!(Sd(v)|0)){g=c[t>>2]|0;break}p=(Sd(v)|0)&255;a[f+2061>>0]=p;if(p<<24>>24)break b;c[f+2084>>2]=(pc(v)|0)<<1;g=(pc(v)|0)<<1;q=61;break b}while(0);a[f+2061>>0]=a[g+57>>0]|0;c[f+2084>>2]=c[g+60>>2];g=c[g+64>>2]|0;q=61}while(0);if((q|0)==61)c[f+2088>>2]=g;g=a[(c[t>>2]|0)+54>>0]|0;c:do if(!(g<<24>>24))g=0;else{do if(!(a[f+2056>>0]|0)){if(a[f+2057>>0]|0)break;if(a[f+2061>>0]|0)break c}while(0);g=(Sd(v)|0)&255}while(0);a[f+2062>>0]=g;p=i}o=f+2108|0;c[o>>2]=0;n=c[t>>2]|0;if(!((a[n+42>>0]|0)==0?!(a[n+43>>0]|0):0))q=71;d:do if((q|0)==71){q=Ud(v)|0;c[o>>2]=q;if((q|0)<=0){c[f+4368>>2]=0;break}k=(Ud(v)|0)+1|0;j=k>>4;k=k&15;l=f+2096|0;be(l);q=f+2100|0;be(q);m=f+2104|0;be(m);c[l>>2]=he(c[o>>2]|0,4)|0;c[q>>2]=he(c[o>>2]|0,4)|0;n=he(c[o>>2]|0,4)|0;c[m>>2]=n;if(c[l>>2]|0?!((n|0)==0|(c[q>>2]|0)==0):0){if((c[o>>2]|0)>0){m=(j|0)>0;n=(k|0)==0;i=0;do{if(m){g=0;h=0;do{g=(Pd(v,16)|0)+(g<<16)|0;h=h+1|0}while((h|0)!=(j|0))}else g=0;if(!n)g=(Pd(v,k)|0)+(g<>2]|0)+(i<<2)>>2]=g+1;i=i+1|0}while((i|0)<(c[o>>2]|0))}g=f+141|0;do if((d[g>>0]|0)>1){q=c[t>>2]|0;if((c[q+48>>2]|0)<=1?(c[q+44>>2]|0)<=1:0)break;c[f+4368>>2]=0;a[g>>0]=1;break d}while(0);c[f+4368>>2]=0;break}c[o>>2]=0;g=-12;break a}while(0);if(a[(c[t>>2]|0)+1628>>0]|0){h=Ud(v)|0;o=Lf(h|0,0,3)|0;m=C;q=qc(v)|0;n=((q|0)<0)<<31>>31;if((m|0)>(n|0)|(m|0)==(n|0)&o>>>0>q>>>0){g=-1094995529;break}if(h|0){g=0;do{Rd(v,8);g=g+1|0}while((g|0)!=(h|0))}}h=c[t>>2]|0;t=(c[h+16>>2]|0)+26+(c[f+2068>>2]|0)|0;i=t&255;a[f+2112>>0]=i;t=t<<24;if((t|0)<=855638016?(t>>24|0)>=(0-(c[(c[s>>2]|0)+13192>>2]|0)|0):0){t=c[f+1432>>2]|0;c[f+2500>>2]=t;if((t|0)==0?a[r>>0]|0:0){g=-1094995529;break}if((qc(v)|0)>=0){g=c[u>>2]|0;a[g+203>>0]=(a[r>>0]|0)==0&1;if(!(a[h+22>>0]|0))a[g+272>>0]=i;a[p>>0]=1;a[g+302>>0]=0;a[g+303>>0]=0;g=0}else g=-1094995529}else g=-1094995529}else g=-1094995529;while(0);return g|0}function Zb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=c[b+136>>2]|0;e=b+200|0;i=c[e>>2]|0;g=c[i+13064>>2]|0;f=c[i+13120>>2]>>g;g=(c[i+13124>>2]>>g)+1|0;i=b+2596|0;j=b+2600|0;Kf(c[b+4320>>2]|0,0,R(c[j>>2]|0,c[i>>2]|0)|0)|0;Kf(c[b+4324>>2]|0,0,R(c[j>>2]|0,c[i>>2]|0)|0)|0;i=c[e>>2]|0;Kf(c[b+4344>>2]|0,0,R(c[i+13152>>2]|0,c[i+13148>>2]|0)|0)|0;i=c[e>>2]|0;Kf(c[b+4348>>2]|0,0,R((c[i+13160>>2]|0)+1|0,(c[i+13156>>2]|0)+1|0)|0)|0;Kf(c[b+4328>>2]|0,-1,R((f<<2)+4|0,g)|0)|0;c[b+2604>>2]=0;g=b+2512|0;c[b+4416>>2]=c[g>>2];f=c[b+204>>2]|0;if(a[f+42>>0]|0)c[d+312>>2]=c[c[f+1648>>2]>>2]<>2]|0)+13080>>2];f=b+160|0;d=Bc(b,f,c[b+2572>>2]|0)|0;if((d|0)>=0){e=b+2520|0;c[(c[c[e>>2]>>2]|0)+80>>2]=(c[g>>2]&-8|0)==16&1;c[(c[f>>2]|0)+84>>2]=3-(c[b+1440>>2]|0);d=b+164|0;xe(c[d>>2]|0);d=Dc(b,c[d>>2]|0,0)|0;if((d|0)<0)h=7;else d=0}else{e=b+2520|0;h=7}if((h|0)==7){c[e>>2]=0}return d|0}function _b(a){a=a|0;var b=0,d=0,e=0;d=l;l=l+16|0;e=d+8|0;b=d;c[e>>2]=0;c[e+4>>2]=1;a=c[a+4>>2]|0;ua[c[a+816>>2]&1](a,1,e,b,1,4)|0;l=d;return c[b>>2]|0}function $b(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=c[b+60>>2]|0;p=r+200|0;h=c[p>>2]|0;s=1<>2];q=r+204|0;d=c[q>>2]|0;b=c[(c[d+1668>>2]|0)+(c[r+2500>>2]<<2)>>2]|0;e=(a[r+1449>>0]|0)==0;do if((b|0)!=0|e){if(!e?(c[(c[r+4328>>2]|0)+(c[(c[d+1672>>2]|0)+(b+-1<<2)>>2]<<2)>>2]|0)!=(c[r+1436>>2]|0):0){b=-1094995529;break}j=s+-1|0;k=r+2084|0;l=r+2508|0;m=r+2088|0;n=r+2062|0;o=r+4352|0;g=0;f=0;e=h;d=c[h+13120>>2]|0;do{if((b|0)>=(c[e+13136>>2]|0))break;h=c[(c[(c[q>>2]|0)+1672>>2]|0)+(b<<2)>>2]|0;g=c[e+13080>>2]|0;i=j+d>>g;f=((h|0)%(i|0)|0)<>2]|0)+13080>>2]|0;bc(r,f>>i,g>>i);i=c[l>>2]|0;c[i+(h<<3)>>2]=c[k>>2];c[i+(h<<3)+4>>2]=c[m>>2];a[(c[o>>2]|0)+h>>0]=a[n>>0]|0;i=cc(r,f,g,c[(c[p>>2]|0)+13080>>2]|0,0)|0;if((i|0)<0){t=8;break}b=b+1|0;La(r,b);Nb(r,f,g,s);e=c[p>>2]|0;d=c[e+13120>>2]|0}while((i|0)!=0);if((t|0)==8){c[(c[r+4328>>2]|0)+(h<<2)>>2]=-1;b=i;break}if((f+s|0)>=(d|0)?(g+s|0)>=(c[e+13124>>2]|0):0)Cb(r,f,g,s)}else b=-1094995529;while(0);return b|0}function ac(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=c[b+136>>2]|0;k=c[b+200>>2]|0;g=k+13080|0;h=1<>2];l=c[b+204>>2]|0;m=c[(c[l+1672>>2]|0)+(f<<2)>>2]|0;p=c[b+1436>>2]|0;n=m-p|0;i=c[b+4328>>2]|0;j=i+(m<<2)|0;c[j>>2]=p;do if(!(a[l+43>>0]|0)){b=a[l+42>>0]|0;if(!(b<<24>>24)){c[o+312>>2]=c[k+13120>>2];b=0;break}if((f|0)!=0?(p=c[l+1676>>2]|0,(c[p+(f<<2)>>2]|0)!=(c[p+(f+-1<<2)>>2]|0)):0){p=c[g>>2]|0;c[o+312>>2]=(c[(c[l+1648>>2]|0)+(c[(c[l+1664>>2]|0)+(d>>p<<2)>>2]<<2)>>2]<>0]=1}}else{if((d|0)==0?(h+-1&e|0)==0:0)a[o+203>>0]=1;c[o+312>>2]=c[k+13120>>2];b=a[l+42>>0]|0}while(0);h=h+e|0;p=c[k+13124>>2]|0;c[o+316>>2]=(h|0)>(p|0)?p:h;h=o+31312|0;c[h>>2]=0;if(!(b<<24>>24)){if(!n){c[h>>2]=1;b=1}else b=0;if((n|0)<(c[k+13128>>2]|0)){b=b|4;c[h>>2]=b}}else{if((d|0)>0){p=c[l+1676>>2]|0;g=m+-1|0;if((c[p+(f<<2)>>2]|0)==(c[p+(c[(c[l+1668>>2]|0)+(g<<2)>>2]<<2)>>2]|0))b=0;else{c[h>>2]=2;b=2}if((c[j>>2]|0)!=(c[i+(g<<2)>>2]|0)){b=b|1;c[h>>2]=b}}else b=0;if((e|0)>0){p=c[l+1676>>2]|0;g=m-(c[k+13128>>2]|0)|0;if((c[p+(f<<2)>>2]|0)!=(c[p+(c[(c[l+1668>>2]|0)+(g<<2)>>2]<<2)>>2]|0)){b=b|8;c[h>>2]=b}if((c[j>>2]|0)!=(c[i+(g<<2)>>2]|0)){b=b|4;c[h>>2]=b}}}h=(d|0)>0;if(h&(n|0)>0)g=(b>>>1&1^1)&255;else g=0;a[o+308>>0]=g;if((e|0)>0){g=c[k+13128>>2]|0;if((n|0)<(g|0))b=0;else b=(b>>>3&1^1)&255;a[o+309>>0]=b;if((n+1|0)<(g|0))b=0;else{b=c[l+1676>>2]|0;b=(c[b+(f<<2)>>2]|0)==(c[b+(c[(c[l+1668>>2]|0)+(m+1-g<<2)>>2]<<2)>>2]|0)&1}a[o+310>>0]=b;if(h&(n|0)>(g|0)){b=c[l+1676>>2]|0;b=(c[b+(f<<2)>>2]|0)==(c[b+(c[(c[l+1668>>2]|0)+(m+-1-g<<2)>>2]<<2)>>2]|0)&1}else b=0}else{a[o+309>>0]=0;a[o+310>>0]=0;b=0}a[o+311>>0]=b;return}function bc(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;h=c[e+136>>2]|0;B=e+2504|0;C=c[B>>2]|0;D=e+200|0;A=(R(c[(c[D>>2]|0)+13128>>2]|0,g)|0)+f|0;if((a[e+2056>>0]|0)==0?(a[e+2057>>0]|0)==0:0){h=0;i=0}else{if((f|0)>0?(a[h+308>>0]|0)!=0:0)i=Sa(e)|0;else i=0;if(!((g|0)<1|(i|0)!=0))if(!(a[h+309>>0]|0)){h=0;i=0}else{h=Sa(e)|0;i=0}else h=0}t=c[(c[D>>2]|0)+4>>2]|0?3:1;u=e+204|0;v=C+(A*148|0)+143|0;w=C+(A*148|0)+144|0;x=C+(A*148|0)+104|0;y=C+(A*148|0)+108|0;z=(h|0)==0;s=(i|h|0)==0;o=(i|0)==0;p=g+-1|0;q=f+-1|0;m=C+(A*148|0)+144|0;l=0;do{r=c[u>>2]|0;r=d[((l|0)==0?r+1644|0:r+1645|0)>>0]|0;if(a[e+2056+l>>0]|0){j=(l|0)==2;do if(j){h=a[v>>0]|0;a[w>>0]=h;c[y>>2]=c[x>>2];n=m}else{if(s){h=(Ua(e)|0)&255;n=C+(A*148|0)+142+l|0;a[n>>0]=h;break}if(!o){h=a[(c[B>>2]|0)+((q+(R(c[(c[D>>2]|0)+13128>>2]|0,g)|0)|0)*148|0)+142+l>>0]|0;n=C+(A*148|0)+142+l|0;a[n>>0]=h;break}if(z)h=0;else h=a[(c[B>>2]|0)+(((R(c[(c[D>>2]|0)+13128>>2]|0,p)|0)+f|0)*148|0)+142+l>>0]|0;n=C+(A*148|0)+142+l|0;a[n>>0]=h}while(0);if(h<<24>>24){h=0;do{do if(!s){if(!o){i=c[(c[B>>2]|0)+((q+(R(c[(c[D>>2]|0)+13128>>2]|0,g)|0)|0)*148|0)+(l<<4)+(h<<2)>>2]|0;break}if(z)i=0;else i=c[(c[B>>2]|0)+(((R(c[(c[D>>2]|0)+13128>>2]|0,p)|0)+f|0)*148|0)+(l<<4)+(h<<2)>>2]|0}else i=Xa(e)|0;while(0);c[C+(A*148|0)+(l<<4)+(h<<2)>>2]=i;h=h+1|0}while((h|0)!=4);do if((a[n>>0]|0)!=1){if(!j){if(s){c[C+(A*148|0)+100+(l<<2)>>2]=Za(e)|0;break}if(!o){c[C+(A*148|0)+100+(l<<2)>>2]=c[(c[B>>2]|0)+((q+(R(c[(c[D>>2]|0)+13128>>2]|0,g)|0)|0)*148|0)+100+(l<<2)>>2];break}if(z)h=0;else h=c[(c[B>>2]|0)+(((R(c[(c[D>>2]|0)+13128>>2]|0,p)|0)+f|0)*148|0)+100+(l<<2)>>2]|0;c[C+(A*148|0)+100+(l<<2)>>2]=h}}else{h=0;do{do if(c[C+(A*148|0)+(l<<4)+(h<<2)>>2]|0){if(s){i=Ya(e)|0;break}if(!o){i=c[(c[B>>2]|0)+((q+(R(c[(c[D>>2]|0)+13128>>2]|0,g)|0)|0)*148|0)+48+(l<<4)+(h<<2)>>2]|0;break}if(!z)i=c[(c[B>>2]|0)+(((R(c[(c[D>>2]|0)+13128>>2]|0,p)|0)+f|0)*148|0)+48+(l<<4)+(h<<2)>>2]|0;else i=0}else i=0;while(0);c[C+(A*148|0)+48+(l<<4)+(h<<2)>>2]=i;h=h+1|0}while((h|0)!=4);if(s){a[C+(A*148|0)+96+l>>0]=Wa(e)|0;break}if(!o){a[C+(A*148|0)+96+l>>0]=a[(c[B>>2]|0)+((q+(R(c[(c[D>>2]|0)+13128>>2]|0,g)|0)|0)*148|0)+96+l>>0]|0;break}if(z)h=0;else h=a[(c[B>>2]|0)+(((R(c[(c[D>>2]|0)+13128>>2]|0,p)|0)+f|0)*148|0)+96+l>>0]|0;a[C+(A*148|0)+96+l>>0]=h}while(0);b[C+(A*148|0)+112+(l*10|0)>>1]=0;j=0;do{h=c[C+(A*148|0)+(l<<4)+(j<<2)>>2]|0;i=j;j=j+1|0;k=C+(A*148|0)+112+(l*10|0)+(j<<1)|0;b[k>>1]=h;if((a[n>>0]|0)==2){if((i|0)>1){h=0-h|0;b[k>>1]=h}}else if(c[C+(A*148|0)+48+(l<<4)+(i<<2)>>2]|0){h=0-h|0;b[k>>1]=h}b[k>>1]=h<<16>>16<>0]=0;l=l+1|0}while((l|0)<(t|0));return}function cc(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;p=c[b+136>>2]|0;s=1<>2]|0;k=b+204|0;i=c[k>>2]|0;o=(1<<(c[j+13080>>2]|0)-(c[i+24>>2]|0))+-1|0;c[p+31232>>2]=h;r=s+e|0;if(((r|0)<=(c[j+13120>>2]|0)?(s+f|0)<=(c[j+13124>>2]|0):0)?(c[j+13064>>2]|0)>>>0>>0:0){j=eb(b,h,e,f)|0;i=c[k>>2]|0}else j=(c[j+13064>>2]|0)>>>0>>0&1;if(a[i+22>>0]|0?((c[(c[q>>2]|0)+13080>>2]|0)-(c[i+24>>2]|0)|0)>>>0<=g>>>0:0){a[p+300>>0]=0;c[p+280>>2]=0}if(a[b+2080>>0]|0?((c[(c[q>>2]|0)+13080>>2]|0)-(d[i+1632>>0]|0)|0)>>>0<=g>>>0:0)a[p+301>>0]=0;a:do if(!j){i=dc(b,e,f,g)|0;if((i|0)>=0){i=c[q>>2]|0;j=1<>2];if((r|0)%(j|0)|0|0?(r|0)<(c[i+13120>>2]|0):0){i=1;break}s=s+f|0;if((s|0)%(j|0)|0|0?(s|0)<(c[i+13124>>2]|0):0){i=1;break}i=(_a(b)|0)==0&1}}else{l=s>>1;m=l+e|0;n=l+f|0;g=g+-1|0;k=h+1|0;i=cc(b,e,f,g,k)|0;if((i|0)>=0){do if(i){j=c[q>>2]|0;if((m|0)<(c[j+13120>>2]|0)){i=cc(b,m,f,g,k)|0;if((i|0)<0)break a;if(!i){i=0;break}j=c[q>>2]|0}if((n|0)<(c[j+13124>>2]|0)){i=cc(b,e,n,g,k)|0;if((i|0)<0)break a;if(!i){i=0;break}j=c[q>>2]|0}if((m|0)<(c[j+13120>>2]|0)?(n|0)<(c[j+13124>>2]|0):0){i=cc(b,m,n,g,k)|0;if((i|0)<0)break a}}else i=0;while(0);if((o&r|0)==0?(o&s+f|0)==0:0)c[p+276>>2]=a[p+272>>0];if(!i)i=0;else{i=c[q>>2]|0;if((m+l|0)<(c[i+13120>>2]|0))i=1;else i=(n+l|0)<(c[i+13124>>2]|0);i=i&1}}}while(0);return i|0}function dc(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;y=c[b+136>>2]|0;B=b+200|0;w=c[B>>2]|0;v=c[w+13064>>2]|0;u=c[w+13140>>2]|0;r=b+204|0;w=1<<(c[w+13080>>2]|0)-(c[(c[r>>2]|0)+24>>2]|0);c[y+31236>>2]=e;c[y+31240>>2]=f;m=y+31252|0;a[m>>0]=1;o=y+31244|0;c[o>>2]=1;j=y+31248|0;c[j>>2]=0;p=y+31254|0;a[p>>0]=0;n=y+31253|0;a[n>>0]=0;k=b+4332|0;t=(R(f>>v,u)|0)+(e>>v)|0;a[(c[k>>2]|0)+t>>0]=0;x=y+31268|0;a[x>>0]=1;a[x+1>>0]=1;a[x+2>>0]=1;a[x+3>>0]=1;x=1<>v;w=w+-1|0;if(a[(c[r>>2]|0)+40>>0]|0){s=($a(b)|0)&255;a[y+31256>>0]=s;if(s<<24>>24)ec(b,e,f,g)}else a[y+31256>>0]=0;s=(v|0)>0;if(s){h=0;i=t;while(1){Kf((c[k>>2]|0)+i|0,0,v|0)|0;h=h+1|0;if((h|0)==(v|0))break;else i=i+u|0}}if(!((c[o>>2]|0)==1?(c[(c[B>>2]|0)+13064>>2]|0)!=(g|0):0))q=9;if((q|0)==9?(i=fb(b,g)|0,c[j>>2]=i,k=c[o>>2]|0,a[p>>0]=(i|0)==3&(k|0)==1&1,(k|0)!=1):0)oa();if((((c[j>>2]|0)==0?(l=c[B>>2]|0,(c[l+68>>2]|0)!=0):0)?(c[l+13048>>2]|0)>>>0<=g>>>0:0)?(c[l+13052>>2]|0)>>>0>=g>>>0:0){h=(gb(b)|0)&255;a[n>>0]=h}else h=a[n>>0]|0;if(h<<24>>24){fc(b,e,f,g);h=gc(b,e,f,g)|0;if(a[(c[B>>2]|0)+13056>>0]|0)ec(b,e,f,g);if((h|0)>=0)q=22}else{hc(b,e,f,g);q=22}a:do if((q|0)==22){do if(!(a[n>>0]|0)){if(!(a[m>>0]|0)){if(a[b+2061>>0]|0)break;Bb(b,e,f,g);break}h=c[B>>2]|0;if((c[o>>2]|0)==1)h=(d[p>>0]|0)+(c[h+13092>>2]|0)|0;else h=c[h+13088>>2]|0;a[y+31255>>0]=h;h=ic(b,e,f,e,f,e,f,g,g,0,0,2592,2592)|0;if((h|0)<0)break a}while(0);if(a[(c[r>>2]|0)+22>>0]|0?(a[y+300>>0]|0)==0:0)zb(b,e,f,g);if(s){j=b+4316|0;k=y+272|0;i=0;h=t;while(1){Kf((c[j>>2]|0)+h|0,a[k>>0]|0,v|0)|0;i=i+1|0;if((i|0)==(v|0))break;else h=h+u|0}}if((w&x+e|0)==0?(w&x+f|0)==0:0)c[y+276>>2]=a[y+272>>0];h=c[B>>2]|0;i=c[h+13064>>2]|0;k=x>>i;j=e>>i;i=f>>i;if((k|0)>0?(z=b+4336|0,A=c[y+31232>>2]&255,Kf((c[z>>2]|0)+((R(c[h+13140>>2]|0,i)|0)+j)|0,A|0,k|0)|0,(k|0)!=1):0){h=1;do{Kf((c[z>>2]|0)+((R(c[(c[B>>2]|0)+13140>>2]|0,h+i|0)|0)+j)|0,A|0,k|0)|0;h=h+1|0}while((h|0)!=(k|0));h=0}else h=0}while(0);return h|0}function ec(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;k=1<>2]|0;h=c[j+13084>>2]|0;l=c[j+13156>>2]|0;f=k+d|0;g=c[j+13120>>2]|0;k=k+e|0;j=c[j+13124>>2]|0;e=e>>h;k=((k|0)>(j|0)?j:k)>>h;if((e|0)<(k|0)){j=d>>h;h=((f|0)>(g|0)?g:f)>>h;i=(j|0)<(h|0);g=b+4348|0;do{if(i){d=R(e,l)|0;f=j;do{a[(c[g>>2]|0)+(f+d)>>0]=2;f=f+1|0}while((f|0)!=(h|0))}e=e+1|0}while((e|0)!=(k|0))}return}function fc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=c[a+200>>2]|0;f=c[h+13084>>2]|0;e=1<>f;h=c[h+13156>>2]|0;g=b>>f;f=d>>f;d=(e|0)==0?1:e;if((d|0)>0){b=a+4340|0;e=0;do{Kf((c[b>>2]|0)+((R(e+f|0,h)|0)+g)|0,1,d|0)|0;e=e+1|0}while((e|0)<(d|0))}return}function gc(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;t=l;l=l+32|0;q=t;s=1<>2]|0;j=c[y+32>>2]|0;m=R(j,f)|0;k=b+200|0;i=c[k>>2]|0;h=c[i+56>>2]|0;m=(c[y>>2]|0)+((e<>2]|0;u=c[i+13184>>2]|0;o=R(f>>u,n)|0;v=c[i+13172>>2]|0;o=(c[y+4>>2]|0)+((e>>v<>2]|0;w=c[i+13188>>2]|0;r=R(f>>w,p)|0;x=c[i+13176>>2]|0;r=(c[y+8>>2]|0)+((e>>x<>0]|0,s<>x,s>>w)|0)+(R(s>>v,s>>u)|0)|0;h=(R(u,d[i+13045>>0]|0)|0)+h|0;i=mc((c[b+136>>2]|0)+224|0,h+7>>3)|0;if(!(a[b+2061>>0]|0))Bb(b,e,f,g);e=nc(q,i,h)|0;if((e|0)>=0){y=b+2608|0;Aa[c[y>>2]&3](m,j,s,s,q,d[(c[k>>2]|0)+13044>>0]|0);e=c[k>>2]|0;Aa[c[y>>2]&3](o,n,s>>c[e+13172>>2],s>>c[e+13184>>2],q,d[e+13045>>0]|0);e=c[k>>2]|0;Aa[c[y>>2]&3](r,p,s>>c[e+13176>>2],s>>c[e+13188>>2],q,d[e+13045>>0]|0);e=0}l=t;return e|0}function hc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+16|0;p=s;r=c[b+136>>2]|0;j=(c[r+31248>>2]|0)==3;h=1<>0]=hb(b)|0;f=f+1|0}while((f|0)<(q|0));g=g+1|0}while((g|0)<(q|0));h=h>>(j&1);i=r+31264|0;j=r+31260|0;f=0;do{k=f<<1;m=(R(f,h)|0)+e|0;g=0;do{n=g+k|0;o=a[p+n>>0]|0;if(!(o<<24>>24))c[i>>2]=jb(b)|0;else c[j>>2]=ib(b)|0;a[r+31268+n>>0]=lc(b,(R(g,h)|0)+d|0,m,h,o&255)|0;g=g+1|0}while((g|0)<(q|0));f=f+1|0}while((f|0)<(q|0));switch(c[(c[b+200>>2]|0)+4>>2]|0){case 3:{h=0;do{j=h<<1;i=0;do{g=kb(b)|0;k=i+j|0;a[r+31281+k>>0]=g;f=a[r+31268+k>>0]|0;if((g|0)!=4){p=a[1634+g>>0]|0;f=f<<24>>24==p<<24>>24?34:p}a[r+31277+k>>0]=f;i=i+1|0}while((i|0)<(q|0));h=h+1|0}while((h|0)<(q|0));break}case 2:{g=kb(b)|0;a[r+31281>>0]=g;f=a[r+31268>>0]|0;if((g|0)!=4){b=a[1634+g>>0]|0;f=f<<24>>24==b<<24>>24?34:b}a[r+31277>>0]=a[1638+(f&255)>>0]|0;break}case 0:break;default:{g=kb(b)|0;f=a[r+31268>>0]|0;if((g|0)!=4){b=a[1634+g>>0]|0;f=f<<24>>24==b<<24>>24?34:b}a[r+31277>>0]=f}}l=s;return}function ic(b,e,f,g,h,i,j,k,m,n,o,p,q){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=l;l=l+16|0;B=E+8|0;C=E;A=c[b+136>>2]|0;r=c[p>>2]|0;c[B>>2]=r;s=c[p+4>>2]|0;v=B+4|0;c[v>>2]=s;x=c[q>>2]|0;c[C>>2]=x;q=c[q+4>>2]|0;w=C+4|0;c[w>>2]=q;u=a[A+31254>>0]|0;if(u<<24>>24){if((n|0)==1){c[A+288>>2]=d[A+31268+o>>0];p=(c[(c[b+200>>2]|0)+4>>2]|0)==3?o:0;D=5}}else{c[A+288>>2]=d[A+31268>>0];p=0;D=5}if((D|0)==5){c[A+292>>2]=d[A+31277+p>>0];c[A+296>>2]=d[A+31281+p>>0]}y=b+200|0;p=c[y>>2]|0;t=(c[p+13076>>2]|0)>>>0>>0;if(((!t?(c[p+13072>>2]|0)>>>0>>0:0)?(d[A+31255>>0]|0)>(n|0):0)?!((n|0)==0&u<<24>>24!=0):0)t=(lb(b,m)|0)&255;else{if((c[p+13088>>2]|0)==0?(c[A+31244>>2]|0)==0:0)p=(n|0)==0&(c[A+31248>>2]|0)!=0;else p=0;if(t)p=1;else p=p|(n|0)==0&u<<24>>24!=0;t=p&1}p=c[(c[y>>2]|0)+4>>2]|0;if((m|0)>2)if(!p)p=x;else D=20;else if((p|0)==3)D=20;else p=x;if((D|0)==20){p=(n|0)!=0;if(!(p&(r|0)==0)){r=mb(b,n)|0;c[B>>2]=r;if((c[(c[y>>2]|0)+4>>2]|0)==2?(m|0)==3|t<<24>>24==0:0){s=mb(b,n)|0;c[v>>2]=s}}else r=0;if(!(p&(x|0)==0)){p=mb(b,n)|0;c[C>>2]=p;if((c[(c[y>>2]|0)+4>>2]|0)==2?(m|0)==3|t<<24>>24==0:0){q=mb(b,n)|0;c[w>>2]=q}}else p=0}if(!(t<<24>>24)){y=c[y>>2]|0;t=c[y+13072>>2]|0;u=1<>2]|0;if(((r|n|p|0)==0?(c[A+31244>>2]|0)!=1:0)?((q|s|0)==0?1:(c[y+4>>2]|0)!=2):0)q=1;else q=nb(b,n)|0;p=jc(b,e,f,g,h,i,j,k,m,o,q,B,C)|0;if((p|0)>=0){if(q|0?(z=1<>t,v)|0;p=0;do{a[(c[r>>2]|0)+((p+e>>t)+s)>>0]=1;p=p+u|0}while((p|0)<(z|0));q=q+u|0}while((q|0)<(z|0))}if(((a[b+2061>>0]|0)==0?(Bb(b,e,f,m),(a[(c[b+204>>2]|0)+40>>0]|0)!=0):0)?(a[A+31256>>0]|0)!=0:0){ec(b,e,f,m);D=47}else D=47}}else{r=m+-1|0;t=1<=0){p=ic(b,s,f,e,f,i,j,k,r,q,1,B,C)|0;if((p|0)>=0){p=ic(b,e,t,e,f,i,j,k,r,q,2,B,C)|0;if((p|0)>=0){p=ic(b,s,t,e,f,i,j,k,r,q,3,B,C)|0;if((p|0)>-1)D=47}}}}if((D|0)==47)p=0;l=E;return p|0}function jc(d,e,f,g,h,i,j,k,l,m,n,o,p){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;B=c[d+136>>2]|0;E=d+200|0;C=l-(c[(c[E>>2]|0)+13172>>2]|0)|0;D=B+31244|0;r=1<>2]|0)==1){ed(d,e,f,r,r);uc(d,e,f,l,0)}z=(n|0)!=0;n=(c[o>>2]|0)==0;do if(z)if(n)w=10;else{r=1;w=14}else if(n?(c[p>>2]|0)==0:0){q=c[E>>2]|0;n=c[q+4>>2]|0;if((n|0)==2){if(c[o+4>>2]|0){w=10;break}if(c[p+4>>2]|0){w=10;break}}if(!((n|0)==0|(c[D>>2]|0)!=1)){if((l|0)>2|(n|0)==3){r=1<<(c[q+13172>>2]|0)+C;q=1<<(c[q+13184>>2]|0)+C;ed(d,e,f,r,q);uc(d,e,f,C,1);uc(d,e,f,C,2);n=(1<>2]|0)+4>>2]|0)!=2){n=0;break}ed(d,e,n,r,q);uc(d,e,n,C,1);uc(d,e,n,C,2);n=0;break}if((m|0)==3?(s=1<>2]|0)+l,ed(d,g,h,s,t),uc(d,g,h,l,1),uc(d,g,h,l,2),u=r+h|0,(c[(c[E>>2]|0)+4>>2]|0)==2):0){ed(d,g,u,s,t);uc(d,g,u,l,1);uc(d,g,u,l,2);n=0}else n=0}else n=0}else{r=1;w=14}while(0);if((w|0)==10)if(!(c[p>>2]|0))if((c[(c[E>>2]|0)+4>>2]|0)==2)if(!(c[o+4>>2]|0)){r=(c[p+4>>2]|0)!=0;w=14}else{r=1;w=14}else{r=0;w=14}else{r=1;w=14}a:do if((w|0)==14){s=d+204|0;if(a[(c[s>>2]|0)+22>>0]|0?(v=B+300|0,(a[v>>0]|0)==0):0){A=ab(d)|0;q=B+280|0;c[q>>2]=A;if(A){A=(bb(d)|0)==1;n=c[q>>2]|0;if(A){n=0-n|0;c[q>>2]=n}}else n=0;a[v>>0]=1;A=(c[(c[E>>2]|0)+13192>>2]|0)/2|0;if((n|0)<(-26-A|0)|(n|0)>(A+25|0)){n=-1094995529;break}zb(d,i,j,k)}if((r&(a[d+2080>>0]|0)!=0?(a[B+31256>>0]|0)==0:0)?(x=B+301|0,(a[x>>0]|0)==0):0){if(!(cb(d)|0)){a[B+302>>0]=0;n=0}else{n=c[s>>2]|0;if(!(a[n+1633>>0]|0))q=0;else{q=db(d)|0;n=c[s>>2]|0}a[B+302>>0]=a[n+1634+q>>0]|0;n=a[n+1639+q>>0]|0}a[B+303>>0]=n;a[x>>0]=1}if((l|0)<4&(c[D>>2]|0)==1){n=c[B+288>>2]|0;A=c[B+292>>2]|0;A=(A+-6|0)>>>0<9?2:(A+-22|0)>>>0<9&1;n=(n+-6|0)>>>0<9?2:(n+-22|0)>>>0<9&1}else{A=0;n=0}y=B+304|0;a[y>>0]=0;if(z)qb(d,e,f,l,n,0);q=c[E>>2]|0;n=c[q+4>>2]|0;if(!n)n=0;else{if(!((l|0)>2|(n|0)==3)){if((m|0)!=3){n=0;break}s=1<>2]|0)+l;n=0;do{q=(n<>2]|0)==1){ed(d,g,q,s,r);uc(d,g,q,l,1)}if(c[o+(n<<2)>>2]|0)qb(d,g,q,l,A,1);n=n+1|0}while((n|0)<(((c[(c[E>>2]|0)+4>>2]|0)==2?2:1)|0));n=0;while(1){q=(n<>2]|0)==1){ed(d,g,q,s,r);uc(d,g,q,l,2)}if(c[p+(n<<2)>>2]|0)qb(d,g,q,l,A,2);n=n+1|0;if((n|0)>=(((c[(c[E>>2]|0)+4>>2]|0)==2?2:1)|0)){n=0;break a}}}x=1<<(c[q+13172>>2]|0)+C;w=1<<(c[q+13184>>2]|0)+C;do if(z&(a[(c[s>>2]|0)+1630>>0]|0)!=0){if(c[D>>2]|0){l=(c[B+296>>2]|0)==4;a[y>>0]=l&1;if(!l)break}else a[y>>0]=1;kc(d,0)}else a[y>>0]=0;while(0);t=d+160|0;u=B+320|0;i=B+11680|0;v=1<0;k=d+2612+(C+-2<<2)|0;s=B+284|0;n=0;do{q=(n<>2]|0)==1){ed(d,e,q,x,w);uc(d,e,q,C,1)}if(!(c[o+(n<<2)>>2]|0)){if(a[y>>0]|0){l=c[t>>2]|0;q=c[l+36>>2]|0;B=c[E>>2]|0;r=R(f>>c[B+13184>>2],q)|0;r=(c[l+4>>2]|0)+((e>>c[B+13172>>2]<>2])+r)|0;if(j){n=0;do{b[i+(n<<1)>>1]=(R(b[u+(n<<1)>>1]|0,c[s>>2]|0)|0)>>>3;n=n+1|0}while((n|0)!=(v|0));n=v}else n=0;xa[c[k>>2]&7](r,i,q)}}else qb(d,e,q,C,A,1);n=n+1|0}while((n|0)<(((c[(c[E>>2]|0)+4>>2]|0)==2?2:1)|0));if(!(a[y>>0]|0))n=0;else{kc(d,1);n=0}do{q=(n<>2]|0)==1){ed(d,e,q,x,w);uc(d,e,q,C,2)}if(!(c[p+(n<<2)>>2]|0)){if(a[y>>0]|0){B=c[t>>2]|0;q=c[B+40>>2]|0;o=c[E>>2]|0;r=R(f>>c[o+13188>>2],q)|0;r=(c[B+8>>2]|0)+((e>>c[o+13176>>2]<>2])+r)|0;if(j){n=0;do{b[i+(n<<1)>>1]=(R(b[u+(n<<1)>>1]|0,c[s>>2]|0)|0)>>>3;n=n+1|0}while((n|0)!=(v|0));n=v}else n=0;xa[c[k>>2]&7](r,i,q)}}else qb(d,e,q,C,A,2);n=n+1|0}while((n|0)<(((c[(c[E>>2]|0)+4>>2]|0)==2?2:1)|0));n=0}}while(0);return n|0}function kc(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a+136>>2]|0;d=ob(a,b)|0;if(!d)a=0;else a=1-((pb(a,b)|0)<<1)<>2]=a;return}function lc(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+16|0;o=s;m=c[b+136>>2]|0;i=c[b+200>>2]|0;n=c[i+13084>>2]|0;p=e>>n;q=f>>n;r=c[i+13156>>2]|0;n=g>>n;i=c[i+13080>>2]|0;g=(1<>0]|0)!=0|(g&f|0)!=0){j=(R(q+-1|0,r)|0)+p|0;j=d[(c[b+4340>>2]|0)+j>>0]|0}else j=1;if((g&e|0)!=0|(a[m+308>>0]|0)!=0){e=p+-1+(R(q,r)|0)|0;e=d[(c[b+4340>>2]|0)+e>>0]|0}else e=1;g=(f>>i<>>0<2){c[o>>2]=0;c[o+4>>2]=1;i=26;j=0;g=1;break}else{c[o>>2]=e;g=(e+29&31)+2|0;c[o+4>>2]=g;i=(e+31&31)+2|0;j=e;break}else{c[o>>2]=e;c[o+4>>2]=g;if((g|0)==0|(e|0)==0){i=(e|0)==1?26:(g|0)!=1?1:26;j=e}else{i=0;j=e}}while(0);k=o+8|0;c[k>>2]=i;if(!h){f=o+4|0;if((j|0)>(g|0)){e=g&255;c[f>>2]=j;c[o>>2]=e;g=j}else e=j;if((e|0)>(i|0)){h=i&255;c[k>>2]=e;c[o>>2]=h;i=e;e=h}if((g|0)>(i|0)){c[k>>2]=g;c[f>>2]=i&255}g=c[m+31264>>2]|0;g=((g|0)>=(e|0)&1)+g|0;e=1;do{g=((g|0)>=(c[o+(e<<2)>>2]|0)&1)+g|0;e=e+1|0}while((e|0)!=3)}else g=c[o+(c[m+31260>>2]<<2)>>2]|0;f=(n|0)==0?1:n;if((f|0)>0){i=b+4340|0;j=g&255;e=0;do{Kf((c[i>>2]|0)+((R(e+q|0,r)|0)+p)|0,j|0,f|0)|0;e=e+1|0}while((e|0)<(f|0))}l=s;return g|0}function mc(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[a+16>>2]|0;e=c[a>>2]|0;d=(e&1|0)==0?d:d+-1|0;d=(e&511|0)==0?d:d+-1|0;e=(c[a+20>>2]|0)-d|0;if((e|0)<(b|0))d=0;else Md(a,d+b|0,e-b|0);return d|0}function nc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=(b|0)!=0&d>>>0<2147483640;d=e?d:0;b=e?b:0;c[a>>2]=b;c[a+12>>2]=d;c[a+16>>2]=d+8;c[a+4>>2]=b+(d+7>>3);c[a+8>>2]=0;return (e?0:-1094995529)|0}function oc(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;j=l;l=l+16|0;g=j;Sb(b);f=sc(b,e)|0;if((f|0)<0){Sb(b);c[b+200>>2]=0}else{h=b+4|0;i=c[h>>2]|0;c[i+124>>2]=c[e+13120>>2];c[i+128>>2]=c[e+13124>>2];c[i+116>>2]=c[e+12>>2];c[i+120>>2]=c[e+16>>2];c[i+136>>2]=c[e+60>>2];c[i+172>>2]=c[e+76+(((c[e+72>>2]|0)+-1|0)*12|0)+4>>2];i=e+160|0;c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];if(!(c[e+176>>2]|0))f=1;else f=c[e+184>>2]|0?2:1;i=c[h>>2]|0;c[i+392>>2]=f;if(!(c[e+188>>2]|0)){f=2;g=2;h=2}else{f=d[e+194>>0]|0;g=d[e+193>>0]|0;h=d[e+192>>0]|0}c[i+380>>2]=h;c[i+384>>2]=g;c[i+388>>2]=f;Fc(b+2608|0,c[e+52>>2]|0);g=b+200|0;if(a[e+12941>>0]|0){f=c[g>>2]|0;h=c[f+4>>2]|0?3:1;i=(1<>2])+2|0;i=R(i,i)|0;c[b+168>>2]=Yd(i<>2])|0;f=0;do{i=c[g>>2]|0;k=c[i+13124>>2]>>c[i+13180+(f<<2)>>2];m=R(c[i+13120>>2]>>c[i+13168+(f<<2)>>2]<<1,c[i+13132>>2]|0)|0;c[b+172+(f<<2)>>2]=Yd(m<>2])|0;i=c[g>>2]|0;k=R(k<<1,c[i+13128>>2]|0)|0;c[b+184+(f<<2)>>2]=Yd(k<>2])|0;f=f+1|0}while((f|0)<(h|0))}c[g>>2]=e;c[b+196>>2]=c[(c[b+208+(c[e>>2]<<2)>>2]|0)+4>>2];f=0}l=j;return f|0}function pc(a){a=a|0;return Xd(a)|0}function qc(a){a=a|0;var b=0;b=c[a+12>>2]|0;return b-(rc(a)|0)|0}function rc(a){a=a|0;return c[a+8>>2]|0}function sc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=c[b+13064>>2]|0;j=c[b+13120>>2]|0;o=c[b+13124>>2]|0;d=R((o>>d)+1|0,(j>>d)+1|0)|0;e=R(c[b+13132>>2]|0,c[b+13128>>2]|0)|0;f=b+13156|0;g=b+13160|0;h=R(c[g>>2]|0,c[f>>2]|0)|0;i=a+2596|0;c[i>>2]=(j>>2)+1;j=a+2600|0;c[j>>2]=(o>>2)+1;o=a+2504|0;c[o>>2]=ie(e,148)|0;p=ie(e,8)|0;c[a+2508>>2]=p;if(((((((!((p|0)==0|(c[o>>2]|0)==0)?(q=b+13144|0,o=b+13140|0,p=a+4332|0,c[p>>2]=Yd(R(c[o>>2]|0,c[q>>2]|0)|0)|0,o=he(c[q>>2]|0,c[o>>2]|0)|0,c[a+4336>>2]=o,!((o|0)==0|(c[p>>2]|0)==0)):0)?(k=a+4344|0,c[k>>2]=he(c[b+13148>>2]|0,c[b+13152>>2]|0)|0,q=a+4340|0,c[q>>2]=ee(h)|0,l=Yd(R((c[g>>2]|0)+1|0,(c[f>>2]|0)+1|0)|0)|0,c[a+4348>>2]=l,(c[q>>2]|0)!=0):0)?!((l|0)==0|(c[k>>2]|0)==0):0)?(m=a+4352|0,c[m>>2]=Yd(e)|0,n=a+4328|0,c[n>>2]=he(d,4)|0,q=he(d,1)|0,c[a+4316>>2]=q,(q|0)!=0):0)?(c[m>>2]|0)!=0:0)?(c[n>>2]|0)!=0:0)?(q=a+4320|0,c[q>>2]=ie(c[i>>2]|0,c[j>>2]|0)|0,p=ie(c[i>>2]|0,c[j>>2]|0)|0,c[a+4324>>2]=p,!((p|0)==0|(c[q>>2]|0)==0)):0)a=0;else{Sb(a);a=-12}return a|0}function tc(b){b=b|0;var d=0,e=0,f=0;e=c[b+60>>2]|0;c[e+4>>2]=b;f=ee(31328)|0;c[e+136>>2]=f;if((((f|0)!=0?(c[e+72>>2]=f,c[e+8>>2]=e,f=Yd(199)|0,c[e+152>>2]=f,(f|0)!=0):0)?(f=ue()|0,c[e+164>>2]=f,(f|0)!=0):0)?(d=ue()|0,c[e+2524>>2]=d,(d|0)!=0):0){c[e+2528>>2]=d;c[e+2592>>2]=2147483647;a[e+4469>>0]=1;c[e+2584>>2]=0;b=0}else{Qb(b)|0;b=-12}return b|0}function uc(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0;la=l;l=l+272|0;aa=la+195|0;ba=la+130|0;X=la+65|0;ca=la;fa=c[b+136>>2]|0;ga=c[b+200>>2]|0;s=c[ga+13168+(h<<2)>>2]|0;L=c[ga+13180+(h<<2)>>2]|0;ka=1<>2]|0;u=ka<>2]|0;n=e>>k&m;o=f>>k&m;t=c[b+204>>2]|0;p=c[t+1684>>2]|0;q=m+2|0;r=c[p+((R(o,q)|0)+n<<2)>>2]|0;ia=c[b+160>>2]|0;ha=c[ia+32+(h<<2)>>2]|0;D=0-ha|0;ia=(c[ia+(h<<2)>>2]|0)+(e>>s)+(R(ha,f>>L)|0)|0;V=(h|0)==0;ja=c[(V?fa+288|0:fa+292|0)>>2]|0;j=aa+1|0;i=X+1|0;da=ba+1|0;ea=ca+1|0;if(!(c[fa+31288>>2]|0))x=0;else x=(r|0)>(c[p+(n+-1+(R(o+(u>>k)&m,q)|0)<<2)>>2]|0);w=x&1;y=c[fa+31292>>2]|0;S=c[fa+31300>>2]|0;B=c[fa+31296>>2]|0;if(!(c[fa+31304>>2]|0))A=0;else A=(r|0)>(c[p+((R(q,o+-1|0)|0)+(m&n+(v>>k))<<2)>>2]|0);b=A&1;G=(u<<1)+f|0;J=ga+13124|0;C=c[J>>2]|0;K=u+f|0;G=((G|0)>(C|0)?C:G)-K>>L;C=(v<<1)+e|0;F=c[ga+13120>>2]|0;z=v+e|0;C=((C|0)>(F|0)?F:C)-z>>s;F=t+20|0;if((a[F>>0]|0)==1){s=c[ga+13084>>2]|0;p=u>>s;q=v>>s;r=(1<>2]|0)-(K>>s)|0;n=(p|0)>(n|0)?n:p;if((n|0)>0){k=0;m=0;do{k=k|1;m=m+2|0}while((m|0)<(n|0));w=k}else w=0}if((y|0)==1&o){n=(c[ga+13160>>2]|0)-(f>>s)|0;n=(p|0)>(n|0)?n:p;if((n|0)>0){k=0;m=0;do{k=k|1;m=m+2|0}while((m|0)<(n|0));o=k}else o=0}else o=y;if((B|0)==1&r){m=(c[ga+13156>>2]|0)-(e>>s)|0;m=(q|0)>(m|0)?m:q;if((m|0)>0){k=0;n=0;do{k=k|1;n=n+2|0}while((n|0)<(m|0));n=k}else n=0}else n=B;if(A&r){k=(c[ga+13156>>2]|0)-(z>>s)|0;k=(q|0)>(k|0)?k:q;if((k|0)>0){b=0;m=0;do{b=b|1;m=m+2|0}while((m|0)<(k|0))}else b=0}k=j;m=k+64|0;do{a[k>>0]=128;k=k+1|0}while((k|0)<(m|0));k=X;m=k+65|0;do{a[k>>0]=128;k=k+1|0}while((k|0)<(m|0));y=o;B=n;q=b}else q=b;r=(S|0)!=0;if(r){A=a[ia+~ha>>0]|0;a[aa>>0]=A;a[X>>0]=A}s=(B|0)!=0;if(s)Pf(i|0,ia+D|0,ka|0)|0;t=(q|0)!=0;if(t?(E=i+ka|0,Pf(E|0,ia+D+ka|0,ka|0)|0,H=R(d[ia+(ka+-1-ha+C)>>0]|0,16843009)|0,I=ka-C|0,(I|0)>0):0){k=E+C|0;b=0;do{E=k+b|0;a[E>>0]=H;a[E+1>>0]=H>>8;a[E+2>>0]=H>>16;a[E+3>>0]=H>>24;b=b+4|0}while((b|0)<(I|0))}p=(y|0)!=0;if(p&(g|0)!=31){b=0;do{a[j+b>>0]=a[ia+((R(b,ha)|0)+-1)>>0]|0;b=b+1|0}while((b|0)<(ka|0))}o=(w|0)!=0;if(o){k=G+ka|0;if((G|0)>0){b=ka;do{a[j+b>>0]=a[ia+((R(b,ha)|0)+-1)>>0]|0;b=b+1|0}while((b|0)<(k|0))}m=R(d[ia+((R(k+-1|0,ha)|0)+-1)>>0]|0,16843009)|0;n=ka-G|0;if((n|0)>0){k=j+ka+G|0;b=0;do{I=k+b|0;a[I>>0]=m;a[I+1>>0]=m>>8;a[I+2>>0]=m>>16;a[I+3>>0]=m>>24;b=b+4|0}while((b|0)<(n|0))}}if((a[F>>0]|0)==1?(M=w|y|S,B|q|M|0):0){I=ka<<1;b=c[J>>2]|0;m=b-f>>L;m=o?(((I<>0]|0;if(!M)a[aa>>0]=b;a[aa>>0]=b;if(!p?(N=R(b&255,16843009)|0,(g|0)!=31):0){b=0;do{M=j+b|0;a[M>>0]=N;a[M+1>>0]=N>>8;a[M+2>>0]=N>>16;a[M+3>>0]=N>>24;b=b+4|0}while((b|0)<(ka|0))}if(!o?(O=R(d[j+(ka+-1)>>0]|0,16843009)|0,(g|0)!=31):0){k=j+ka|0;b=0;do{N=k+b|0;a[N>>0]=O;a[N+1>>0]=O>>8;a[N+2>>0]=O>>16;a[N+3>>0]=O>>24;b=b+4|0}while((b|0)<(ka|0))}if(((f|0)==0|(e|0)==0)&(e|0)==0&(m|0)>0)Kf(j|0,0,m+3&-4|0)|0;a[X>>0]=a[aa>>0]|0}a:do if(!o){if(p){k=R(d[j+(ka+-1)>>0]|0,16843009)|0;if((g|0)==31){P=72;break}m=j+ka|0;b=0;while(1){P=m+b|0;a[P>>0]=k;a[P+1>>0]=k>>8;a[P+2>>0]=k>>16;a[P+3>>0]=k>>24;b=b+4|0;if((b|0)>=(ka|0)){P=69;break a}}}if(r){k=R(d[aa>>0]|0,16843009)|0;m=ka<<1;if((g|0)==31){P=74;break}else b=0;while(1){Q=j+b|0;a[Q>>0]=k;a[Q+1>>0]=k>>8;a[Q+2>>0]=k>>16;a[Q+3>>0]=k>>24;b=b+4|0;if((b|0)>=(m|0)){P=72;break a}}}if(s){k=a[i>>0]|0;a[aa>>0]=k;k=R(k&255,16843009)|0;m=ka<<1;if((g|0)==31){P=77;break}else b=0;while(1){S=j+b|0;a[S>>0]=k;a[S+1>>0]=k>>8;a[S+2>>0]=k>>16;a[S+3>>0]=k>>24;b=b+4|0;if((b|0)>=(m|0)){P=74;break a}}}if(!t){a[aa>>0]=-128;k=ka<<1;if((g|0)==31){P=73;break}Kf(i|0,-128,((k|0)>4?k:4)+3&-4|0)|0;b=0;while(1){P=j+b|0;a[P>>0]=-2139062144;a[P+1>>0]=-2139062144>>8;a[P+2>>0]=-2139062144>>16;a[P+3>>0]=-2139062144>>24;b=b+4|0;if((b|0)>=(k|0)){P=69;break a}}}k=i+ka|0;b=a[k>>0]|0;m=R(b&255,16843009)|0;n=(g|0)==31;if(n){a[aa>>0]=b;break}else b=0;do{T=i+b|0;a[T>>0]=m;a[T+1>>0]=m>>8;a[T+2>>0]=m>>16;a[T+3>>0]=m>>24;b=b+4|0}while((b|0)<(ka|0));k=a[k>>0]|0;a[aa>>0]=k;k=R(k&255,16843009)|0;m=ka<<1;if(n)P=77;else{b=0;do{T=j+b|0;a[T>>0]=k;a[T+1>>0]=k>>8;a[T+2>>0]=k>>16;a[T+3>>0]=k>>24;b=b+4|0}while((b|0)<(m|0));P=77}}else P=69;while(0);if((P|0)==69)if((y|0)==0?(Q=R(d[j+ka>>0]|0,16843009)|0,(g|0)!=31):0){b=0;do{P=j+b|0;a[P>>0]=Q;a[P+1>>0]=Q>>8;a[P+2>>0]=Q>>16;a[P+3>>0]=Q>>24;b=b+4|0}while((b|0)<(ka|0));P=72}else P=72;if((P|0)==72)if(!S)P=73;else P=74;if((P|0)==73){a[aa>>0]=a[j>>0]|0;P=74}if((P|0)==74)if((B|0)==0?(T=R(d[aa>>0]|0,16843009)|0,(g|0)!=31):0){b=0;do{S=i+b|0;a[S>>0]=T;a[S+1>>0]=T>>8;a[S+2>>0]=T>>16;a[S+3>>0]=T>>24;b=b+4|0}while((b|0)<(ka|0));P=77}else P=77;if(((P|0)==77?!t:0)?(U=R(d[i+(ka+-1)>>0]|0,16843009)|0,(g|0)!=31):0){k=i+ka|0;b=0;do{T=k+b|0;a[T>>0]=U;a[T+1>>0]=U>>8;a[T+2>>0]=U>>16;a[T+3>>0]=U>>24;b=b+4|0}while((b|0)<(ka|0))}r=a[aa>>0]|0;a[X>>0]=r;b:do if(!(c[ga+13112>>2]|0)){if(!V?(c[ga+4>>2]|0)!=3:0)break;if((g|0)!=2&(ja|0)!=1?(U=ja+-26|0,U=(U|0)>-1?U:26-ja|0,T=ja+-10|0,T=(T|0)>-1?T:10-ja|0,(((U|0)>(T|0)?T:U)|0)>(c[164+(g+-3<<2)>>2]|0)):0){if(((g|0)==5&(V&(a[ga+13061>>0]|0)!=0)?(Y=r&255,W=a[X+64>>0]|0,Z=W&255,X=Z+Y-(d[X+32>>0]<<1)|0,(((X|0)>-1?X:0-X|0)|0)<8):0)?($=aa+64|0,_=a[$>>0]|0,X=(_&255)+Y-(d[aa+32>>0]<<1)|0,(((X|0)>-1?X:0-X|0)|0)<8):0){a[ca>>0]=r;a[ca+64>>0]=W;b=0;do{da=b;b=b+1|0;a[ea+da>>0]=((R(b,Z)|0)+32+(R(63-da|0,Y)|0)|0)>>>6}while((b|0)!=63);a[j>>0]=(((r&255)*63|0)+32+(_&255)|0)>>>6;b=1;while(1){da=b;b=b+1|0;a[j+da>>0]=((R(d[aa>>0]|0,63-da|0)|0)+32+(R(d[$>>0]|0,b)|0)|0)>>>6;if((b|0)==63){i=ea;break b}}}q=ka<<1;p=q+-1|0;b=a[j+p>>0]|0;a[da+p>>0]=b;k=a[i+p>>0]|0;a[ea+p>>0]=k;q=q+-2|0;p=(q|0)>-1;if(p){o=q;m=a[j+q>>0]|0;while(1){aa=o;o=o+-1|0;n=a[j+o>>0]|0;a[da+aa>>0]=((b&255)+2+((m&255)<<1)+(n&255)|0)>>>2;if((aa|0)<=0)break;else{b=m;m=n}}}aa=((d[j>>0]|0)+2+((r&255)<<1)+(d[i>>0]|0)|0)>>>2&255;a[ba>>0]=aa;a[ca>>0]=aa;if(p){m=q;b=a[i+q>>0]|0;while(1){ca=m;m=m+-1|0;j=a[i+m>>0]|0;a[ea+ca>>0]=((k&255)+2+((b&255)<<1)+(j&255)|0)>>>2;if((ca|0)<=0){j=da;i=ea;break}else{k=b;b=j}}}else{j=da;i=ea}}}while(0);switch(ja|0){case 0:{vc(ia,i,j,ha,g);break}case 1:{wc(ia,i,j,ha,g,h);break}default:{if(!(c[ga+13104>>2]|0))b=0;else b=(a[fa+31256>>0]|0)!=0;xc(ia,i,j,ha,h,ja,ka,b&1)}}l=la;return}function vc(b,c,e,f,g){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;m=1<>0]|0,n-h|0)|0;q=h;h=h+1|0;s=R(d[o>>0]|0,h)|0;r=R(d[c+q>>0]|0,k)|0;a[b+(q+l)>>0]=t+m+s+r+(R(d[p>>0]|0,g)|0)>>i}while((h|0)<(m|0))}while((g|0)<(m|0))}return}function wc(b,c,e,f,g,h){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=1<>0]|0)+i+(d[c+j>>0]|0)|0;j=j+1|0}while((j|0)<(n|0));g=i>>g+1;l=R(g,16843009)|0;if(!k){j=0;do{k=R(j,f)|0;i=0;do{o=b+(i+k)|0;a[o>>0]=l;a[o+1>>0]=l>>8;a[o+2>>0]=l>>16;a[o+3>>0]=l>>24;i=i+4|0}while((i|0)<(n|0));j=j+1|0}while((j|0)<(n|0))}}else g=n>>g+1;if((h|0)==0&(n|0)<32?(a[b>>0]=((g<<1)+2+(d[e>>0]|0)+(d[c>>0]|0)|0)>>>2,m=(n|0)>1,m):0){j=(g*3|0)+2|0;i=1;do{a[b+i>>0]=(j+(d[c+i>>0]|0)|0)>>>2;i=i+1|0}while((i|0)!=(n|0));if(m){j=(g*3|0)+2|0;i=1;do{a[b+(R(i,f)|0)>>0]=(j+(d[e+i>>0]|0)|0)>>>2;i=i+1|0}while((i|0)!=(n|0))}}return}function xc(c,e,f,g,h,i,j,k){c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;v=l;l=l+112|0;u=a[1673+(i+-2)>>0]|0;q=v+j|0;m=(R(u,j)|0)>>5;o=i+-11|0;p=o>>>0<15&(m|0)<-1;if((i|0)>17){n=e+-1|0;if(p){if((j|0)>=0)Pf(q|0,n|0,j+4&-4|0)|0;n=b[296+(o<<1)>>1]|0;while(1){a[q+m>>0]=a[f+(((R(n,m)|0)+128>>8)+-1)>>0]|0;if((m|0)<-1)m=m+1|0;else{n=q;break}}}t=(j|0)>0;if(t){s=0;do{m=s;s=s+1|0;q=R(s,u)|0;p=q>>5;q=q&31;if(!q){p=p+1|0;o=R(m,g)|0;m=0;do{q=n+(p+m)|0;q=d[q>>0]|d[q+1>>0]<<8|d[q+2>>0]<<16|d[q+3>>0]<<24;r=c+(m+o)|0;a[r>>0]=q;a[r+1>>0]=q>>8;a[r+2>>0]=q>>16;a[r+3>>0]=q>>24;m=m+4|0}while((m|0)<(j|0))}else{r=32-q|0;o=R(m,g)|0;m=0;do{w=m+p|0;x=R(d[n+(w+1)>>0]|0,r)|0;a[c+(m+o)>>0]=(x+16+(R(d[n+(w+2)>>0]|0,q)|0)|0)>>>5;w=m|1;x=w+p|0;y=R(d[n+(x+1)>>0]|0,r)|0;a[c+(w+o)>>0]=(y+16+(R(d[n+(x+2)>>0]|0,q)|0)|0)>>>5;w=m|2;x=w+p|0;y=R(d[n+(x+1)>>0]|0,r)|0;a[c+(w+o)>>0]=(y+16+(R(d[n+(x+2)>>0]|0,q)|0)|0)>>>5;w=m|3;x=w+p|0;y=R(d[n+(x+1)>>0]|0,r)|0;a[c+(w+o)>>0]=(y+16+(R(d[n+(x+2)>>0]|0,q)|0)|0)>>>5;m=m+4|0}while((m|0)<(j|0))}}while((s|0)!=(j|0))}if((h|0)==0&(i|0)==26&(j|0)<32&(k|0)==0&t){n=f+-1|0;m=0;do{y=((d[f+m>>0]|0)-(d[n>>0]|0)>>1)+(d[e>>0]|0)|0;a[c+(R(m,g)|0)>>0]=y>>>0>255?0-y>>31:y;m=m+1|0}while((m|0)!=(j|0))}}else{n=f+-1|0;if(p){if((j|0)>=0)Pf(q|0,n|0,j+4&-4|0)|0;n=b[296+(o<<1)>>1]|0;while(1){a[q+m>>0]=a[e+(((R(n,m)|0)+128>>8)+-1)>>0]|0;if((m|0)<-1)m=m+1|0;else{n=q;break}}}t=(j|0)>0;if(t){r=0;do{s=r;r=r+1|0;p=R(r,u)|0;o=p>>5;p=p&31;if(!p){o=o+1|0;m=0;do{a[c+((R(m,g)|0)+s)>>0]=a[n+(o+m)>>0]|0;m=m+1|0}while((m|0)!=(j|0))}else{q=32-p|0;m=0;do{y=m+o|0;x=R(d[n+(y+1)>>0]|0,q)|0;a[c+((R(m,g)|0)+s)>>0]=(x+16+(R(d[n+(y+2)>>0]|0,p)|0)|0)>>>5;m=m+1|0}while((m|0)!=(j|0))}}while((r|0)!=(j|0))}if((h|0)==0&(i|0)==10&(j|0)<32&(k|0)==0&t){n=e+-1|0;m=0;do{y=((d[e+m>>0]|0)-(d[n>>0]|0)>>1)+(d[f>>0]|0)|0;a[c+m>>0]=y>>>0>255?0-y>>31:y;y=m|1;x=((d[e+y>>0]|0)-(d[n>>0]|0)>>1)+(d[f>>0]|0)|0;a[c+y>>0]=x>>>0>255?0-x>>31:x;y=m|2;x=((d[e+y>>0]|0)-(d[n>>0]|0)>>1)+(d[f>>0]|0)|0;a[c+y>>0]=x>>>0>255?0-x>>31:x;y=m|3;x=((d[e+y>>0]|0)-(d[n>>0]|0)>>1)+(d[f>>0]|0)|0;a[c+y>>0]=x>>>0>255?0-x>>31:x;m=m+4|0}while((m|0)<(j|0))}}l=v;return}function yc(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0;g=c[e>>2]|0;if((g|0?c[g+304>>2]|0:0)?(h=e+46|0,g=(d[h>>0]|0)&(f^255)&255,a[h>>0]=g,g<<24>>24==0):0){Id(c[b+4>>2]|0,e+4|0);c[e+24>>2]=0}return}function zc(a){a=a|0;yc(a,a+2524|0,6);return}function Ac(a){a=a|0;yc(a,a+2524|0,-1);return}function Bc(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0;h=d+4364|0;if(((c[(c[d+2524>>2]|0)+304>>2]|0)!=0?(b[d+2568>>1]|0)==(b[h>>1]|0):0)?(c[d+2544>>2]|0)==(f|0):0)d=-1094995529;else{g=Cc(d)|0;if(!g)d=-12;else{c[e>>2]=c[g>>2];c[d+2520>>2]=g;a[g+46>>0]=a[d+1450>>0]|0?3:2;c[g+20>>2]=f;b[g+44>>1]=b[h>>1]|0;h=g+28|0;d=(c[d+200>>2]|0)+20|0;c[h>>2]=c[d>>2];c[h+4>>2]=c[d+4>>2];c[h+8>>2]=c[d+8>>2];c[h+12>>2]=c[d+12>>2];d=0}}return d|0}function Cc(a){a=a|0;var b=0,d=0;b=a+2524|0;if((c[(c[b>>2]|0)+304>>2]|0)==0?(Hd(c[a+4>>2]|0,a+2528|0,1)|0)>=0:0){d=c[a+200>>2]|0;c[a+2540>>2]=R(c[d+13132>>2]|0,c[d+13128>>2]|0)|0;d=c[a+4520>>2]|0;a=c[b>>2]|0;c[a+244>>2]=(d|0)==1&1;c[a+240>>2]=(d+-1|0)>>>0<2&1}else b=0;return b|0}function Dc(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;q=d+2046|0;s=d+4366|0;l=(f|0)==0;m=d+4364|0;n=d+200|0;o=d+2572|0;p=d+2524|0;h=d+2570|0;i=d+2544|0;j=d+2568|0;k=d+2568|0;g=d+2570|0;while(1){if((a[q>>0]|0)==1)if(((a[h>>0]&8)==0?(c[i>>2]|0)!=(c[o>>2]|0):0)?(b[j>>1]|0)==(b[s>>1]|0):0){yc(d,p,1);f=h}else f=h;else f=g;if(!(a[f>>0]&1))f=0;else f=(b[k>>1]|0)==(b[s>>1]|0)&1;if(((l?(b[s>>1]|0)==(b[m>>1]|0):0)?(r=c[n>>2]|0,r|0):0)?(f|0)<=(c[r+76+(((c[r+72>>2]|0)+-1|0)*12|0)+4>>2]|0):0){f=0;break}if(f|0){t=14;break}f=b[s>>1]|0;if(f<<16>>16==(b[m>>1]|0)){f=0;break}b[s>>1]=(f&65535)+1&255}if((t|0)==14){g=d+2524|0;f=ze(e,c[g>>2]|0)|0;if(!(a[d+2570>>0]&8))yc(d,g,1);else yc(d,g,9);f=(f|0)<0?f:1}return f|0}function Ec(){var b=0,c=0,d=0,e=0,f=0;if(!(a[3717]|0)){c=0;do{b=0;do{f=(R(b<<1|1,c)|0)&127;d=f>>>0>63;f=d?f+-64|0:f;d=d?-1:1;e=(f|0)>31;a[3717+(c<<5)+b>>0]=R(a[1706+(e?64-f|0:f)>>0]|0,e?0-d|0:d)|0;b=b+1|0}while((b|0)!=32);c=c+1|0}while((c|0)!=32)}return}function Fc(a,b){a=a|0;b=b|0;c[a>>2]=1;c[a+4>>2]=1;c[a+8>>2]=2;c[a+12>>2]=3;c[a+16>>2]=4;c[a+20>>2]=1;c[a+24>>2]=5;c[a+28>>2]=2;c[a+32>>2]=2;c[a+36>>2]=3;c[a+40>>2]=4;c[a+44>>2]=5;c[a+48>>2]=3;c[a+52>>2]=4;c[a+56>>2]=5;c[a+60>>2]=6;c[a+64>>2]=1;c[a+68>>2]=1;c[a+72>>2]=2;c[a+1676>>2]=2;c[a+1680>>2]=3;c[a+1684>>2]=1;c[a+1688>>2]=2;c[a+1692>>2]=2;c[a+1696>>2]=3;c[a+1700>>2]=1;c[a+1704>>2]=2;return}function Gc(b,c,d,e,f,g){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;if((e|0)>0){j=(d|0)>0;k=8-g|0;i=0;while(1){if(j){h=0;do{a[b+h>>0]=(Pd(f,g)|0)<>1]|0)+(d[j>>0]|0)|0;a[j>>0]=k>>>0>255?0-k>>31:k;g=g+1|0;if((g|0)==4)break;else h=h+2|0}i=i+1|0;if((i|0)==4)break;else{e=e+8|0;c=c+f|0}}return}function Ic(c,e,f){c=c|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;i=0;while(1){g=0;h=e;while(1){j=c+g|0;k=(b[h>>1]|0)+(d[j>>0]|0)|0;a[j>>0]=k>>>0>255?0-k>>31:k;g=g+1|0;if((g|0)==8)break;else h=h+2|0}i=i+1|0;if((i|0)==8)break;else{e=e+16|0;c=c+f|0}}return}function Jc(c,e,f){c=c|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;i=0;while(1){g=0;h=e;while(1){j=c+g|0;k=(b[h>>1]|0)+(d[j>>0]|0)|0;a[j>>0]=k>>>0>255?0-k>>31:k;g=g+1|0;if((g|0)==16)break;else h=h+2|0}i=i+1|0;if((i|0)==16)break;else{e=e+32|0;c=c+f|0}}return}function Kc(c,e,f){c=c|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;i=0;while(1){g=0;h=e;while(1){j=c+g|0;k=(b[h>>1]|0)+(d[j>>0]|0)|0;a[j>>0]=k>>>0>255?0-k>>31:k;g=g+1|0;if((g|0)==32)break;else h=h+2|0}i=i+1|0;if((i|0)==32)break;else{e=e+64|0;c=c+f|0}}return}function Lc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0;g=c<<16>>16;e=7-g|0;g=1<0){f=1<>16!=31){c=0;do{d=0;do{b[a>>1]=(b[a>>1]|0)+f>>e;a=a+2|0;d=d+1|0}while((d|0)<(g|0));c=c+1|0}while((c|0)<(g|0))}}else if(c<<16>>16!=31){e=0-e|0;d=0;do{c=0;do{b[a>>1]=b[a>>1]<>16);if(!d){if(c<<16>>16!=31){h=(i|0)>1;g=0;d=a;while(1){if(h){c=1;f=b[d>>1]|0;do{a=d+(c<<1)|0;f=(e[a>>1]|0)+(f&65535)&65535;b[a>>1]=f;c=c+1|0}while((c|0)!=(i|0))}g=g+1|0;if((g|0)>=(i|0))break;else d=d+(i<<1)|0}}}else{g=i+-1|0;if((i|0)>1){f=0;d=a;do{d=d+(i<<1)|0;c=0;do{a=d+(c<<1)|0;b[a>>1]=(e[a>>1]|0)+(e[d+(c-i<<1)>>1]|0);c=c+1|0}while((c|0)!=(i|0));f=f+1|0}while((f|0)!=(g|0))}}return}function Nc(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c=0;d=a;while(1){n=b[d>>1]|0;l=d+16|0;j=b[l>>1]|0;h=j+n|0;e=d+24|0;m=b[e>>1]|0;k=m+j|0;f=n-m|0;i=d+8|0;g=(b[i>>1]|0)*74|0;m=((n-j+m|0)*74|0)+64|0;j=m>>7;b[l>>1]=(j+32768|0)>>>0>65535?m>>31^32767:j;l=(h*29|0)+64+(k*55|0)+g|0;j=l>>7;b[d>>1]=(j+32768|0)>>>0>65535?l>>31^32767:j;k=(R(k,-29)|0)+64+(f*55|0)+g|0;j=k>>7;b[i>>1]=(j+32768|0)>>>0>65535?k>>31^32767:j;g=(h*55|0)+64+(f*29|0)-g|0;f=g>>7;b[e>>1]=(f+32768|0)>>>0>65535?g>>31^32767:f;c=c+1|0;if((c|0)==4){c=0;break}else d=d+2|0}while(1){e=b[a>>1]|0;g=a+4|0;i=b[g>>1]|0;k=i+e|0;n=a+6|0;f=b[n>>1]|0;h=f+i|0;m=e-f|0;j=a+2|0;l=(b[j>>1]|0)*74|0;f=((e-i+f|0)*74|0)+2048|0;i=f>>12;b[g>>1]=(i+32768|0)>>>0>65535?f>>31^32767:i;g=(k*29|0)+2048+(h*55|0)+l|0;i=g>>12;b[a>>1]=(i+32768|0)>>>0>65535?g>>31^32767:i;h=(R(h,-29)|0)+2048+(m*55|0)+l|0;i=h>>12;b[j>>1]=(i+32768|0)>>>0>65535?h>>31^32767:i;l=(k*55|0)+2048+(m*29|0)-l|0;m=l>>12;b[n>>1]=(m+32768|0)>>>0>65535?l>>31^32767:m;c=c+1|0;if((c|0)==4)break;else a=a+8|0}return}function Oc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c=0;d=a;while(1){k=b[d>>1]<<6;h=d+16|0;i=b[h>>1]<<6;f=i+k|0;i=k-i|0;k=d+8|0;j=b[k>>1]|0;e=d+24|0;l=b[e>>1]|0;g=(l*36|0)+(j*83|0)|0;j=(R(l,-83)|0)+(j*36|0)|0;l=f+64+g|0;m=l>>7;b[d>>1]=(m+32768|0)>>>0>65535?l>>31^32767:m;m=i+64+j|0;l=m>>7;b[k>>1]=(l+32768|0)>>>0>65535?m>>31^32767:l;j=i-j+64|0;i=j>>7;b[h>>1]=(i+32768|0)>>>0>65535?j>>31^32767:i;g=f-g+64|0;f=g>>7;b[e>>1]=(f+32768|0)>>>0>65535?g>>31^32767:f;c=c+1|0;if((c|0)==4){c=0;break}else d=d+2|0}while(1){g=b[a>>1]<<6;j=a+4|0;i=b[j>>1]<<6;l=i+g|0;i=g-i|0;g=a+2|0;h=b[g>>1]|0;m=a+6|0;f=b[m>>1]|0;k=(f*36|0)+(h*83|0)|0;h=(R(f,-83)|0)+(h*36|0)|0;f=l+2048+k|0;e=f>>12;b[a>>1]=(e+32768|0)>>>0>65535?f>>31^32767:e;e=i+2048+h|0;f=e>>12;b[g>>1]=(f+32768|0)>>>0>65535?e>>31^32767:f;h=i-h+2048|0;i=h>>12;b[j>>1]=(i+32768|0)>>>0>65535?h>>31^32767:i;k=l-k+2048|0;l=k>>12;b[m>>1]=(l+32768|0)>>>0>65535?k>>31^32767:l;c=c+1|0;if((c|0)==4)break;else a=a+8|0}return}function Pc(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=l;l=l+32|0;s=u+16|0;t=u;p=(e|0)<8;n=e+4|0;q=s+4|0;r=s+8|0;o=s+12|0;k=0;m=d;n=(n|0)<8?n:8;while(1){c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;h=(n|0)>1;f=0;do{if(h){i=t+(f<<2)|0;g=1;j=c[i>>2]|0;do{j=(R(b[m+(g<<3<<1)>>1]|0,a[3717+(g<<2<<5)+f>>0]|0)|0)+j|0;g=g+2|0}while((g|0)<(n|0));c[i>>2]=j}f=f+1|0}while((f|0)!=4);i=b[m>>1]<<6;h=b[m+64>>1]<<6;j=h+i|0;h=i-h|0;i=b[m+32>>1]|0;f=b[m+96>>1]|0;g=(f*36|0)+(i*83|0)|0;i=(R(f,-83)|0)+(i*36|0)|0;f=g+j|0;c[s>>2]=f;c[q>>2]=i+h;c[r>>2]=h-i;c[o>>2]=j-g;g=0;while(1){j=c[t+(g<<2)>>2]|0;h=f+64+j|0;i=h>>7;b[m+(g<<3<<1)>>1]=(i+32768|0)>>>0>65535?h>>31^32767:i;j=f-j+64|0;f=j>>7;b[m+(7-g<<3<<1)>>1]=(f+32768|0)>>>0>65535?j>>31^32767:f;f=g+1|0;if((f|0)==4)break;g=f;f=c[s+(f<<2)>>2]|0}n=(n|0)<8&((k|0)!=0&(k&3|0)==0)?n+-4|0:n;k=k+1|0;if((k|0)==8)break;else m=m+2|0}k=p?e:8;m=(k|0)>1;n=s+4|0;e=s+8|0;o=s+12|0;j=0;while(1){c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;g=0;do{if(m){h=t+(g<<2)|0;f=1;i=c[h>>2]|0;do{i=(R(b[d+(f<<1)>>1]|0,a[3717+(f<<2<<5)+g>>0]|0)|0)+i|0;f=f+2|0}while((f|0)<(k|0));c[h>>2]=i}g=g+1|0}while((g|0)!=4);q=b[d>>1]<<6;p=b[d+8>>1]<<6;r=p+q|0;p=q-p|0;q=b[d+4>>1]|0;f=b[d+12>>1]|0;g=(f*36|0)+(q*83|0)|0;q=(R(f,-83)|0)+(q*36|0)|0;f=g+r|0;c[s>>2]=f;c[n>>2]=q+p;c[e>>2]=p-q;c[o>>2]=r-g;g=0;while(1){r=c[t+(g<<2)>>2]|0;p=f+2048+r|0;q=p>>12;b[d+(g<<1)>>1]=(q+32768|0)>>>0>65535?p>>31^32767:q;r=f-r+2048|0;f=r>>12;b[d+(7-g<<1)>>1]=(f+32768|0)>>>0>65535?r>>31^32767:f;f=g+1|0;if((f|0)==4)break;g=f;f=c[s+(f<<2)>>2]|0}j=j+1|0;if((j|0)==8)break;else d=d+16|0}l=u;return}function Qc(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=l;l=l+96|0;t=x+64|0;u=x+32|0;v=x+16|0;w=x;s=(e|0)<16;n=e+4|0;o=v+4|0;p=v+8|0;q=v+12|0;r=t+28|0;k=0;m=d;n=(n|0)<16?n:16;while(1){c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;c[u+16>>2]=0;c[u+20>>2]=0;c[u+24>>2]=0;c[u+28>>2]=0;h=(n|0)>1;f=0;do{if(h){i=u+(f<<2)|0;g=1;j=c[i>>2]|0;do{j=(R(b[m+(g<<4<<1)>>1]|0,a[3717+(g<<1<<5)+f>>0]|0)|0)+j|0;g=g+2|0}while((g|0)<(n|0));c[i>>2]=j}f=f+1|0}while((f|0)!=8);c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;g=0;do{h=w+(g<<2)|0;f=1;i=c[h>>2]|0;do{i=(R(b[m+(f<<5<<1)>>1]|0,a[3717+(f<<2<<5)+g>>0]|0)|0)+i|0;f=f+2|0}while((f|0)<8);c[h>>2]=i;g=g+1|0}while((g|0)!=4);h=b[m>>1]<<6;g=b[m+256>>1]<<6;i=g+h|0;g=h-g|0;h=b[m+128>>1]|0;j=b[m+384>>1]|0;f=(j*36|0)+(h*83|0)|0;h=(R(j,-83)|0)+(h*36|0)|0;j=f+i|0;c[v>>2]=j;c[o>>2]=h+g;c[p>>2]=g-h;c[q>>2]=i-f;f=c[w>>2]|0;c[t>>2]=f+j;c[r>>2]=j-f;f=1;do{i=c[v+(f<<2)>>2]|0;j=c[w+(f<<2)>>2]|0;c[t+(f<<2)>>2]=j+i;c[t+(7-f<<2)>>2]=i-j;f=f+1|0}while((f|0)!=4);f=0;do{j=c[t+(f<<2)>>2]|0;i=c[u+(f<<2)>>2]|0;g=j+64+i|0;h=g>>7;b[m+(f<<4<<1)>>1]=(h+32768|0)>>>0>65535?g>>31^32767:h;i=j-i+64|0;j=i>>7;b[m+(15-f<<4<<1)>>1]=(j+32768|0)>>>0>65535?i>>31^32767:j;f=f+1|0}while((f|0)!=8);n=(n|0)<16&((k|0)!=0&(k&3|0)==0)?n+-4|0:n;k=k+1|0;if((k|0)==16)break;else m=m+2|0}m=s?e:16;n=(m|0)>1;e=v+4|0;o=v+8|0;p=v+12|0;q=t+28|0;j=d;k=0;while(1){c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;c[u+16>>2]=0;c[u+20>>2]=0;c[u+24>>2]=0;c[u+28>>2]=0;g=0;do{if(n){h=u+(g<<2)|0;f=1;i=c[h>>2]|0;do{i=(R(b[j+(f<<1)>>1]|0,a[3717+(f<<1<<5)+g>>0]|0)|0)+i|0;f=f+2|0}while((f|0)<(m|0));c[h>>2]=i}g=g+1|0}while((g|0)!=8);c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;g=0;do{h=w+(g<<2)|0;f=1;i=c[h>>2]|0;do{i=(R(b[j+(f<<1<<1)>>1]|0,a[3717+(f<<2<<5)+g>>0]|0)|0)+i|0;f=f+2|0}while((f|0)<8);c[h>>2]=i;g=g+1|0}while((g|0)!=4);r=b[j>>1]<<6;i=b[j+16>>1]<<6;s=i+r|0;i=r-i|0;r=b[j+8>>1]|0;d=b[j+24>>1]|0;f=(d*36|0)+(r*83|0)|0;r=(R(d,-83)|0)+(r*36|0)|0;d=f+s|0;c[v>>2]=d;c[e>>2]=r+i;c[o>>2]=i-r;c[p>>2]=s-f;f=c[w>>2]|0;c[t>>2]=f+d;c[q>>2]=d-f;f=1;do{s=c[v+(f<<2)>>2]|0;d=c[w+(f<<2)>>2]|0;c[t+(f<<2)>>2]=d+s;c[t+(7-f<<2)>>2]=s-d;f=f+1|0}while((f|0)!=4);f=0;do{d=c[t+(f<<2)>>2]|0;s=c[u+(f<<2)>>2]|0;i=d+2048+s|0;r=i>>12;b[j+(f<<1)>>1]=(r+32768|0)>>>0>65535?i>>31^32767:r;s=d-s+2048|0;d=s>>12;b[j+(15-f<<1)>>1]=(d+32768|0)>>>0>65535?s>>31^32767:d;f=f+1|0}while((f|0)!=8);k=k+1|0;if((k|0)==16)break;else j=j+32|0}l=x;return}function Rc(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=l;l=l+224|0;u=A+160|0;v=A+96|0;w=A+64|0;x=A+32|0;y=A+16|0;z=A;t=(e|0)<32;o=e+4|0;p=y+4|0;q=y+8|0;r=y+12|0;s=w+28|0;m=0;n=d;o=(o|0)<32?o:32;while(1){f=v;g=f+64|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));h=(o|0)>1;f=0;do{if(h){i=v+(f<<2)|0;g=1;j=c[i>>2]|0;do{j=(R(b[n+(g<<5<<1)>>1]|0,a[3717+(g<<5)+f>>0]|0)|0)+j|0;g=g+2|0}while((g|0)<(o|0));c[i>>2]=j}f=f+1|0}while((f|0)!=16);c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[x+12>>2]=0;c[x+16>>2]=0;c[x+20>>2]=0;c[x+24>>2]=0;c[x+28>>2]=0;h=(o|0)/2|0;i=(o|0)>3;g=0;do{if(i){j=x+(g<<2)|0;f=1;k=c[j>>2]|0;do{k=(R(b[n+(f<<6<<1)>>1]|0,a[3717+(f<<1<<5)+g>>0]|0)|0)+k|0;f=f+2|0}while((f|0)<(h|0));c[j>>2]=k}g=g+1|0}while((g|0)!=8);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;c[z+12>>2]=0;g=0;do{h=z+(g<<2)|0;f=1;i=c[h>>2]|0;do{i=(R(b[n+(f<<7<<1)>>1]|0,a[3717+(f<<2<<5)+g>>0]|0)|0)+i|0;f=f+2|0}while((f|0)<8);c[h>>2]=i;g=g+1|0}while((g|0)!=4);i=b[n>>1]<<6;h=b[n+1024>>1]<<6;j=h+i|0;h=i-h|0;i=b[n+512>>1]|0;k=b[n+1536>>1]|0;f=(k*36|0)+(i*83|0)|0;i=(R(k,-83)|0)+(i*36|0)|0;k=f+j|0;c[y>>2]=k;c[p>>2]=i+h;c[q>>2]=h-i;c[r>>2]=j-f;f=c[z>>2]|0;c[w>>2]=f+k;c[s>>2]=k-f;f=1;do{j=c[y+(f<<2)>>2]|0;k=c[z+(f<<2)>>2]|0;c[w+(f<<2)>>2]=k+j;c[w+(7-f<<2)>>2]=j-k;f=f+1|0}while((f|0)!=4);f=0;do{j=c[w+(f<<2)>>2]|0;k=c[x+(f<<2)>>2]|0;c[u+(f<<2)>>2]=k+j;c[u+(15-f<<2)>>2]=j-k;f=f+1|0}while((f|0)!=8);f=0;do{k=c[u+(f<<2)>>2]|0;j=c[v+(f<<2)>>2]|0;h=k+64+j|0;i=h>>7;b[n+(f<<5<<1)>>1]=(i+32768|0)>>>0>65535?h>>31^32767:i;j=k-j+64|0;k=j>>7;b[n+(31-f<<5<<1)>>1]=(k+32768|0)>>>0>65535?j>>31^32767:k;f=f+1|0}while((f|0)!=16);o=(o|0)<32&((m|0)!=0&(m&3|0)==0)?o+-4|0:o;m=m+1|0;if((m|0)==32)break;else n=n+2|0}m=t?e:32;n=(m|0)>1;o=(m|0)/2|0;e=(m|0)>3;p=y+4|0;q=y+8|0;r=y+12|0;s=w+28|0;j=d;k=0;while(1){f=v;g=f+64|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));g=0;do{if(n){h=v+(g<<2)|0;f=1;i=c[h>>2]|0;do{i=(R(b[j+(f<<1)>>1]|0,a[3717+(f<<5)+g>>0]|0)|0)+i|0;f=f+2|0}while((f|0)<(m|0));c[h>>2]=i}g=g+1|0}while((g|0)!=16);c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[x+12>>2]=0;c[x+16>>2]=0;c[x+20>>2]=0;c[x+24>>2]=0;c[x+28>>2]=0;g=0;do{if(e){h=x+(g<<2)|0;f=1;i=c[h>>2]|0;do{d=f<<1;i=(R(b[j+(d<<1)>>1]|0,a[3717+(d<<5)+g>>0]|0)|0)+i|0;f=f+2|0}while((f|0)<(o|0));c[h>>2]=i}g=g+1|0}while((g|0)!=8);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;c[z+12>>2]=0;g=0;do{h=z+(g<<2)|0;f=1;i=c[h>>2]|0;do{d=f<<2;i=(R(b[j+(d<<1)>>1]|0,a[3717+(d<<5)+g>>0]|0)|0)+i|0;f=f+2|0}while((f|0)<8);c[h>>2]=i;g=g+1|0}while((g|0)!=4);i=b[j>>1]<<6;h=b[j+32>>1]<<6;t=h+i|0;h=i-h|0;i=b[j+16>>1]|0;d=b[j+48>>1]|0;f=(d*36|0)+(i*83|0)|0;i=(R(d,-83)|0)+(i*36|0)|0;d=f+t|0;c[y>>2]=d;c[p>>2]=i+h;c[q>>2]=h-i;c[r>>2]=t-f;f=c[z>>2]|0;c[w>>2]=f+d;c[s>>2]=d-f;f=1;do{t=c[y+(f<<2)>>2]|0;d=c[z+(f<<2)>>2]|0;c[w+(f<<2)>>2]=d+t;c[w+(7-f<<2)>>2]=t-d;f=f+1|0}while((f|0)!=4);f=0;do{t=c[w+(f<<2)>>2]|0;d=c[x+(f<<2)>>2]|0;c[u+(f<<2)>>2]=d+t;c[u+(15-f<<2)>>2]=t-d;f=f+1|0}while((f|0)!=8);f=0;do{d=c[u+(f<<2)>>2]|0;t=c[v+(f<<2)>>2]|0;h=d+2048+t|0;i=h>>12;b[j+(f<<1)>>1]=(i+32768|0)>>>0>65535?h>>31^32767:i;t=d-t+2048|0;d=t>>12;b[j+(31-f<<1)>>1]=(d+32768|0)>>>0>65535?t>>31^32767:d;f=f+1|0}while((f|0)!=16);k=k+1|0;if((k|0)==32)break;else j=j+64|0}l=A;return}function Sc(a){a=a|0;var c=0,d=0,e=0,f=0;e=((((b[a>>1]|0)+1|0)>>>1)+32|0)>>>6&65535;c=0;do{f=c<<2;d=0;do{b[a+(d+f<<1)>>1]=e;d=d+1|0}while((d|0)!=4);c=c+1|0}while((c|0)!=4);return}function Tc(a){a=a|0;var c=0,d=0,e=0,f=0;e=((((b[a>>1]|0)+1|0)>>>1)+32|0)>>>6&65535;c=0;do{f=c<<3;d=0;do{b[a+(d+f<<1)>>1]=e;d=d+1|0}while((d|0)!=8);c=c+1|0}while((c|0)!=8);return}function Uc(a){a=a|0;var c=0,d=0,e=0,f=0;e=((((b[a>>1]|0)+1|0)>>>1)+32|0)>>>6&65535;c=0;do{f=c<<4;d=0;do{b[a+(d+f<<1)>>1]=e;d=d+1|0}while((d|0)!=16);c=c+1|0}while((c|0)!=16);return}function Vc(a){a=a|0;var c=0,d=0,e=0,f=0;e=((((b[a>>1]|0)+1|0)>>>1)+32|0)>>>6&65535;c=0;do{f=c<<5;d=0;do{b[a+(d+f<<1)>>1]=e;d=d+1|0}while((d|0)!=32);c=c+1|0}while((c|0)!=32);return}function Wc(e,f,g,h,i,j,k,m,n){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0;q=l;l=l+128|0;p=q;j=p;o=j+128|0;do{c[j>>2]=0;j=j+4|0}while((j|0)<(o|0));o=d[i+96+n>>0]|0;j=0;do{r=j;j=j+1|0;c[p+((r+o&31)<<2)>>2]=b[i+112+(n*10|0)+(j<<1)>>1]}while((j|0)!=4);if((m|0)>0){i=(k|0)>0;o=0;while(1){if(i){j=0;do{r=d[f+j>>0]|0;r=r+(c[p+(r>>>3<<2)>>2]|0)|0;a[e+j>>0]=r>>>0>255?0-r>>31:r;j=j+1|0}while((j|0)!=(k|0))}o=o+1|0;if((o|0)==(m|0))break;else{f=f+h|0;e=e+g|0}}}l=q;return}function Xc(e,f,g,h,i,j,k,l,m,n,o,p){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0;r=i+112+(m*10|0)|0;q=c[i+100+(m<<2)>>2]|0;if((q|0)!=1){if(c[j>>2]|0){p=b[r>>1]|0;if((l|0)>0){o=0;do{s=(d[f+(R(o,h)|0)>>0]|0)+p|0;a[e+(R(o,g)|0)>>0]=s>>>0>255?0-s>>31:s;o=o+1|0}while((o|0)!=(l|0));o=1}else o=1}else o=0;if(c[j+8>>2]|0){n=b[r>>1]|0;k=k+-1|0;if((l|0)>0){p=0;do{s=(d[f+((R(p,h)|0)+k)>>0]|0)+n|0;a[e+((R(p,g)|0)+k)>>0]=s>>>0>255?0-s>>31:s;p=p+1|0}while((p|0)!=(l|0))}}if(!q){n=k;p=l;k=0}else{s=k;t=9}}else{s=k;o=0;t=9}if((t|0)==9){if(c[j+4>>2]|0){p=b[r>>1]|0;if((o|0)<(s|0)){k=o;do{t=(d[f+k>>0]|0)+p|0;a[e+k>>0]=t>>>0>255?0-t>>31:t;k=k+1|0}while((k|0)!=(s|0));k=1}else k=1}else k=0;if(c[j+12>>2]|0){j=b[r>>1]|0;p=l+-1|0;q=R(p,g)|0;r=R(p,h)|0;if((o|0)<(s|0)){n=o;do{l=(d[f+(n+r)>>0]|0)+j|0;a[e+(n+q)>>0]=l>>>0>255?0-l>>31:l;n=n+1|0}while((n|0)!=(s|0));n=s}else n=s}else{n=s;p=l}}dd(e,f,g,h,i,n,p,m,o,k);return}function Yc(e,f,g,h,i,j,k,l,m,n,o,p){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;v=i+112+(m*10|0)|0;z=c[i+100+(m<<2)>>2]|0;G=(z|0)!=1;if(G){if(c[j>>2]|0){t=b[v>>1]|0;if((l|0)>0){s=0;do{D=(d[f+(R(s,h)|0)>>0]|0)+t|0;a[e+(R(s,g)|0)>>0]=D>>>0>255?0-D>>31:D;s=s+1|0}while((s|0)!=(l|0));u=1}else u=1}else u=0;if(c[j+8>>2]|0){t=b[v>>1]|0;k=k+-1|0;if((l|0)>0){s=0;do{D=(d[f+((R(s,h)|0)+k)>>0]|0)+t|0;a[e+((R(s,g)|0)+k)>>0]=D>>>0>255?0-D>>31:D;s=s+1|0}while((s|0)!=(l|0))}}if(!z){D=k;w=0;B=0}else{x=u;y=9}}else{x=0;y=9}if((y|0)==9){if(c[j+4>>2]|0){t=b[v>>1]|0;if((x|0)<(k|0)){s=x;do{D=(d[f+s>>0]|0)+t|0;a[e+s>>0]=D>>>0>255?0-D>>31:D;s=s+1|0}while((s|0)!=(k|0));w=1}else w=1}else w=0;if(c[j+12>>2]|0){v=b[v>>1]|0;l=l+-1|0;t=R(l,g)|0;u=R(l,h)|0;if((x|0)<(k|0)){s=x;do{D=(d[f+(s+u)>>0]|0)+v|0;a[e+(s+t)>>0]=D>>>0>255?0-D>>31:D;s=s+1|0}while((s|0)!=(k|0));D=k;u=x;B=1}else{D=k;u=x;B=1}}else{D=k;u=x;B=1}}dd(e,f,g,h,i,D,l,m,u,w);C=(z|0)==2;if(!(C&(a[p>>0]|0)==0)){s=p+1|0;k=(z|0)==3;if(k&(a[s>>0]|0)==0)if(!(c[j+4>>2]|0)){t=(c[j+8>>2]|0)==0;A=1;y=0;z=s}else{t=0;A=1;y=0;z=s}else{t=0;A=k;y=0;z=s}}else{if(!(c[j>>2]|0))k=(c[j+4>>2]|0)==0;else k=0;t=0;A=0;y=k&1;z=p+1|0}v=t&1;m=p+2|0;if(C&(a[m>>0]|0)==0?(c[j+8>>2]|0)==0:0)k=(c[j+12>>2]|0)==0;else k=0;x=k&1;i=p+3|0;if(A&(a[i>>0]|0)==0?(c[j>>2]|0)==0:0)k=(c[j+12>>2]|0)==0;else k=0;t=k&1;if(G&(a[n>>0]|0)!=0?(E=y+w|0,F=l-t|0,(E|0)<(F|0)):0){k=E;do{a[e+(R(k,g)|0)>>0]=a[f+(R(k,h)|0)>>0]|0;k=k+1|0}while((k|0)!=(F|0))}if(G&(a[n+1>>0]|0)!=0?(H=v+w|0,I=l-x|0,(H|0)<(I|0)):0){s=D+-1|0;k=H;do{a[e+(s+(R(k,g)|0))>>0]=a[f+(s+(R(k,h)|0))>>0]|0;k=k+1|0}while((k|0)!=(I|0))}if(B&(a[o>>0]|0)!=0?(r=y+u|0,J=D-v|0,(r|0)<(J|0)):0)do{a[e+r>>0]=a[f+r>>0]|0;r=r+1|0}while((r|0)!=(J|0));if(B&(a[o+1>>0]|0)!=0?(q=t+u|0,K=D-x|0,(q|0)<(K|0)):0){k=l+-1|0;r=R(k,h)|0;k=R(k,g)|0;do{a[e+(q+k)>>0]=a[f+(q+r)>>0]|0;q=q+1|0}while((q|0)!=(K|0))}if(C&(a[p>>0]|0)!=0)a[e>>0]=a[f>>0]|0;r=D+-1|0;if(A&(a[z>>0]|0)!=0)a[e+r>>0]=a[f+r>>0]|0;q=l+-1|0;if(C&(a[m>>0]|0)!=0){K=e+(r+(R(q,g)|0))|0;a[K>>0]=a[f+(r+(R(q,h)|0))>>0]|0}if(A&(a[i>>0]|0)!=0){g=e+(R(q,g)|0)|0;a[g>>0]=a[f+(R(q,h)|0)>>0]|0}return}function Zc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;cd(a,b,1,c,d,e,f);return}function _c(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;cd(a,1,b,c,d,e,f);return}function $c(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;bd(a,b,1,c,d,e);return}function ad(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;bd(a,1,b,c,d,e);return}function bd(b,e,f,g,h,i){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;u=f<<2;v=R(e,-2)|0;w=0-e|0;t=0;while(1){p=c[g+(t<<2)>>2]|0;if((p|0)>=1){q=0-p|0;r=(a[h+t>>0]|0)==0;s=(a[i+t>>0]|0)==0;n=0;o=b;while(1){k=o+w|0;m=d[k>>0]|0;l=d[o>>0]|0;j=(d[o+v>>0]|0)+4-(d[o+e>>0]|0)+(l-m<<2)>>3;j=(j|0)<(q|0)?q:(j|0)>(p|0)?p:j;m=j+m|0;if(r)a[k>>0]=m>>>0>255?0-m>>31:m;j=l-j|0;if(s)a[o>>0]=j>>>0>255?0-j>>31:j;n=n+1|0;if((n|0)==4)break;else o=o+f|0}}t=t+1|0;if((t|0)==2)break;else b=b+u|0}return}function cd(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0;aa=R(e,-3)|0;ba=R(e,-2)|0;ca=0-e|0;M=e<<1;N=f*3|0;O=N+aa|0;P=N+ba|0;Q=N-e|0;S=N+M|0;T=N+e|0;U=g>>3;V=g>>2;W=R(e,-4)|0;X=e*3|0;Y=N+W|0;Z=N+X|0;_=(g>>1)+g>>3;$=f<<2;L=0;while(1){m=a[b+aa>>0]|0;n=a[b+ba>>0]|0;o=a[b+ca>>0]|0;k=o&255;z=(m&255)-((n&255)<<1)+k|0;z=(z|0)>-1?z:0-z|0;u=a[b+M>>0]|0;t=a[b+e>>0]|0;s=a[b>>0]|0;l=s&255;B=(u&255)-((t&255)<<1)+l|0;B=(B|0)>-1?B:0-B|0;p=d[b+Q>>0]|0;A=(d[b+O>>0]|0)-((d[b+P>>0]|0)<<1)+p|0;A=(A|0)>-1?A:0-A|0;q=d[b+N>>0]|0;C=(d[b+S>>0]|0)-((d[b+T>>0]|0)<<1)+q|0;C=(C|0)>-1?C:0-C|0;v=B+z|0;w=C+A|0;K=c[h+(L<<2)>>2]|0;y=a[i+L>>0]|0;D=a[j+L>>0]|0;a:do if((w+v|0)<(g|0)){x=(K*5|0)+1>>1;J=(d[b+W>>0]|0)-k|0;r=a[b+X>>0]|0;I=(r&255)-l|0;if((((((I|0)>-1?I:0-I|0)+((J|0)>-1?J:0-J|0)|0)<(U|0)?(J=k-l|0,(((J|0)>-1?J:0-J|0)|0)<(x|0)):0)?(J=(d[b+Y>>0]|0)-p|0,I=(d[b+Z>>0]|0)-q|0,(((I|0)>-1?I:0-I|0)+((J|0)>-1?J:0-J|0)|0)<(U|0)):0)?(J=p-q|0,((v<<1|0)<(V|0)?(((J|0)>-1?J:0-J|0)|0)<(x|0):0)&(w<<1|0)<(V|0)):0){z=K<<1;x=y<<24>>24==0;y=0-z|0;w=D<<24>>24==0;k=0;v=b;while(1){q=m&255;p=n&255;o=o&255;n=s&255;m=t&255;l=u&255;if(x){K=d[v+W>>0]|0;J=((q+4+m+(o+p+n<<1)|0)>>>3)-o|0;a[v+ca>>0]=((J|0)<(y|0)?y:(J|0)>(z|0)?z:J)+o;J=((q+2+p+o+n|0)>>>2)-p|0;a[v+ba>>0]=((J|0)<(y|0)?y:(J|0)>(z|0)?z:J)+p;K=((q*3|0)+4+p+o+n+(K<<1)>>3)-q|0;a[v+aa>>0]=((K|0)<(y|0)?y:(K|0)>(z|0)?z:K)+q}if(w){K=((p+4+l+(n+o+m<<1)|0)>>>3)-n|0;a[v>>0]=((K|0)<(y|0)?y:(K|0)>(z|0)?z:K)+n;K=((o+2+n+m+l|0)>>>2)-m|0;a[v+e>>0]=((K|0)<(y|0)?y:(K|0)>(z|0)?z:K)+m;K=((o+4+n+m+(l*3|0)+((r&255)<<1)|0)>>>3)-l|0;a[v+M>>0]=((K|0)<(y|0)?y:(K|0)>(z|0)?z:K)+l}l=v+f|0;k=k+1|0;if((k|0)==4)break a;v=l;m=a[l+aa>>0]|0;n=a[l+ba>>0]|0;o=a[l+ca>>0]|0;s=a[l>>0]|0;t=a[l+e>>0]|0;u=a[l+M>>0]|0;r=a[l+X>>0]|0}}H=K>>1;I=K*10|0;J=0-K|0;G=y<<24>>24==0;F=D<<24>>24==0;E=G&(A+z|0)<(_|0);D=0-H|0;A=F&(C+B|0)<(_|0);k=0;z=b;while(1){x=m&255;y=z+ba|0;w=n&255;r=z+ca|0;v=o&255;p=s&255;q=z+e|0;o=t&255;n=u&255;l=((p-v|0)*9|0)+8+(R(o-w|0,-3)|0)>>4;if((((l|0)>-1?l:0-l|0)|0)<(I|0)){m=(l|0)<(J|0)?J:(l|0)>(K|0)?K:l;l=m+v|0;if(G)a[r>>0]=l>>>0>255?0-l>>31:l;l=p-m|0;if(F)a[z>>0]=l>>>0>255?0-l>>31:l;if(E){C=((x+1+v|0)>>>1)-w+m>>1;C=((C|0)<(D|0)?D:(C|0)>(H|0)?H:C)+w|0;a[y>>0]=C>>>0>255?0-C>>31:C}if(A){C=((p+1+n|0)>>>1)-o-m>>1;C=((C|0)<(D|0)?D:(C|0)>(H|0)?H:C)+o|0;a[q>>0]=C>>>0>255?0-C>>31:C}}l=z+f|0;k=k+1|0;if((k|0)==4)break a;z=l;m=a[l+aa>>0]|0;n=a[l+ba>>0]|0;o=a[l+ca>>0]|0;s=a[l>>0]|0;t=a[l+e>>0]|0;u=a[l+M>>0]|0}}while(0);L=L+1|0;if((L|0)==2)break;else b=b+$|0}return}function dd(e,f,g,h,i,j,k,l,m,n){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;o=c[i+100+(l<<2)>>2]|0;v=a[1738+(o<<2)>>0]|0;w=a[1738+(o<<2)+2>>0]|0;if((n|0)<(k|0)){u=R((a[1738+(o<<2)+3>>0]|0)+n|0,h)|0;x=(m|0)<(j|0);t=R(n,g)|0;r=R((a[1738+(o<<2)+1>>0]|0)+n|0,h)|0;s=n;n=R(n,h)|0;while(1){if(x){p=r+v|0;q=u+w|0;o=m;do{y=a[f+(o+n)>>0]|0;A=a[f+(p+o)>>0]|0;z=a[f+(q+o)>>0]|0;y=(b[i+112+(l*10|0)+(d[1754+(((y&255)>(A&255)?3:((y<<24>>24!=A<<24>>24)<<31>>31)+2|0)+((y&255)>(z&255)?1:(y<<24>>24!=z<<24>>24)<<31>>31))>>0]<<1)>>1]|0)+(y&255)|0;a[e+(o+t)>>0]=y>>>0>255?0-y>>31:y;o=o+1|0}while((o|0)!=(j|0))}s=s+1|0;if((s|0)==(k|0))break;else{t=t+g|0;u=u+h|0;r=r+h|0;n=n+h|0}}}return}function ed(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=c[b+136>>2]|0;j=1<>2]|0)+13080>>2];o=j+-1|0;k=o&e;l=(o&f|0)!=0;i=(a[n+309>>0]|0)!=0|l;b=i&1;c[n+31296>>2]=b;m=(a[n+308>>0]|0)!=0|(k|0)!=0;c[n+31292>>2]=m&1;if(!(o&(f|e)))i=d[n+311>>0]|0;else i=m&i&1;c[n+31300>>2]=i;if((k+g|0)==(j|0))b=(a[n+310>>0]|0)!=0&(l^1)&1;c[n+31308>>2]=b;if(!b)b=0;else b=(g+e|0)<(c[n+312>>2]|0);c[n+31304>>2]=b&1;c[n+31288>>2]=(h+f|0)<(c[n+316>>2]|0)&m&1;return}function fd(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;v=l;l=l+16|0;t=v;p=(c[b+136>>2]|0)+204|0;r=me(13196)|0;c[t>>2]=r;u=r;a:do if(r){s=r+4|0;q=c[s>>2]|0;e=gd(b)|0;if((e|0)>=0){c[q>>2]=0;g=q+72|0;c[g>>2]=1;o=Pd(p,8)|0;f=q+4|0;c[f>>2]=o;do if((o|0)<=3){a[q+8>>0]=0;m=q+13120|0;c[m>>2]=Td(p,32)|0;e=Td(p,32)|0;n=q+13124|0;c[n>>2]=e;e=Dd(c[m>>2]|0,e,0,c[b+4>>2]|0)|0;if((e|0)>=0){k=Pd(p,8)|0;o=q+52|0;c[o>>2]=k+8;if(!k){switch(c[f>>2]|0){case 0:{f=8;break}case 1:{f=0;break}case 2:{f=4;break}default:f=5}c[q+60>>2]=f;c[q+56>>2]=0;f=Ae(f)|0;if(f){c[q+13180>>2]=0;c[q+13168>>2]=0;k=d[f+5>>0]|0;c[q+13172>>2]=k;c[q+13176>>2]=k;k=d[f+6>>0]|0;c[q+13184>>2]=k;c[q+13188>>2]=k;c[q+64>>2]=8;if((c[g>>2]|0)>0){f=0;do{c[q+76+(f*12|0)>>2]=1;c[q+76+(f*12|0)+4>>2]=0;c[q+76+(f*12|0)+8>>2]=-1;f=f+1|0}while((f|0)<(c[g>>2]|0))}g=(Ud(p)|0)+3|0;f=q+13064|0;c[f>>2]=g;g=1<>2]=h+(c[m>>2]|0)&g;c[n>>2]=(c[n>>2]|0)+h&g;g=q+13068|0;c[g>>2]=Ud(p)|0;h=q+13072|0;c[h>>2]=(Ud(p)|0)+2;j=Ud(p)|0;k=c[h>>2]|0;i=q+13076|0;c[i>>2]=k+j;if(k>>>0<(c[f>>2]|0)>>>0){w=Ud(p)|0;j=q+13092|0;c[j>>2]=w;k=q+13088|0;c[k>>2]=w;a[q+12940>>0]=1;a[q+12941>>0]=Sd(p)|0;w=Sd(p)|0;c[q+68>>2]=w;if(w|0){w=q+13044|0;a[w>>0]=(Pd(p,4)|0)+1;a[q+13045>>0]=(Pd(p,4)|0)+1;x=(Ud(p)|0)+3|0;c[q+13048>>2]=x;c[q+13052>>2]=(Ud(p)|0)+x;if((d[w>>0]|0|0)>(c[o>>2]|0)){e=-1094995529;break}a[q+13056>>0]=Sd(p)|0}c[q+2184>>2]=0;a[q+12942>>0]=0;a[q+13060>>0]=1;a[q+13061>>0]=Sd(p)|0;c[q+160>>2]=0;c[q+164>>2]=1;if(Sd(p)|0?(x=Sd(p)|0,Rd(p,7),x|0):0){c[q+13096>>2]=Sd(p)|0;c[q+13100>>2]=Sd(p)|0;c[q+13104>>2]=Sd(p)|0;c[q+13108>>2]=Sd(p)|0;Sd(p)|0;c[q+13112>>2]=Sd(p)|0;Sd(p)|0;c[q+13116>>2]=Sd(p)|0;Sd(p)|0}m=c[m>>2]|0;c[q+12>>2]=m;n=c[n>>2]|0;c[q+16>>2]=n;f=c[f>>2]|0;x=(c[g>>2]|0)+f|0;c[q+13080>>2]=x;g=f+-1|0;c[q+13084>>2]=g;w=1<>x;c[q+13128>>2]=y;w=n+-1+w>>x;c[q+13132>>2]=w;c[q+13136>>2]=R(y,w)|0;c[q+13140>>2]=m>>f;c[q+13144>>2]=n>>f;w=c[h>>2]|0;c[q+13148>>2]=m>>w;c[q+13152>>2]=n>>w;c[q+13156>>2]=m>>g;c[q+13160>>2]=n>>g;w=x-w|0;c[q+13164>>2]=(1<>2]=((c[o>>2]|0)*6|0)+-48;if((((!(x>>>0>6?1:((1<>2]|0)>>>0<=w>>>0:0)?(c[j>>2]|0)>>>0<=w>>>0:0)?(c[i>>2]|0)>>>0<=(x>>>0<5?x:5)>>>0:0)?(hd(p)|0)>=0:0){h=b+272|0;e=c[h>>2]|0;if((e|0)!=0?(Af(c[e+4>>2]|0,c[s>>2]|0,c[r+8>>2]|0)|0)==0:0){pe(t);e=0;break a}else e=0;do{f=b+400+(e<<2)|0;g=c[f>>2]|0;do if(g|0){if(c[c[g+4>>2]>>2]|0)break;pe(f)}while(0);e=e+1|0}while((e|0)!=256);e=c[h>>2]|0;do if(e|0){f=b+200|0;if((c[f>>2]|0)!=(c[e+4>>2]|0))break;x=b+1424|0;pe(x);y=ne(c[h>>2]|0)|0;c[x>>2]=y;if(y|0)break;c[f>>2]=0}while(0);pe(h);c[h>>2]=u;e=0;break a}}else e=-1094995529}else e=-22}else e=-1094995529}}else e=-1094995529;while(0);pe(t)}}else e=-12;while(0);l=v;return e|0}function gd(b){b=b|0;var d=0,e=0,f=0,g=0;e=me(468)|0;if(!e)d=-12;else{f=c[e+4>>2]|0;c[f+4>>2]=1;g=f+8|0;c[g>>2]=1;a[f>>0]=0;c[f+348>>2]=1;d=0;do{c[f+352+(d<<2)>>2]=1;c[f+380+(d<<2)>>2]=0;c[f+408+(d<<2)>>2]=-1;d=d+1|0}while((d|0)<(c[g>>2]|0));c[f+436>>2]=0;c[f+440>>2]=1;a[f+444>>0]=0;d=b+208|0;pe(d);c[d>>2]=e;d=0}return d|0}function hd(a){a=a|0;var b=0;b=c[a+12>>2]|0;return b-(id(a)|0)|0}function id(a){a=a|0;return c[a+8>>2]|0}function jd(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;M=l;l=l+16|0;L=M+4|0;H=M;K=(c[b+136>>2]|0)+204|0;i=ee(1692)|0;c[H>>2]=i;a:do if(!i)d=-12;else{J=je(i,1692,6,0,0)|0;c[L>>2]=J;I=J;if(!J){be(H);d=-12;break}a[i+53>>0]=1;f=i+44|0;c[f>>2]=1;g=i+48|0;c[g>>2]=1;h=i+52|0;a[h>>0]=1;a[i+57>>0]=0;c[i+60>>2]=0;c[i+64>>2]=0;a[i+1629>>0]=2;J=Ud(K)|0;b:do if((J>>>0<=255?(d=Ud(K)|0,c[i>>2]=d,d>>>0<=31):0)?(e=c[b+272+(d<<2)>>2]|0,(e|0)!=0):0){G=c[e+4>>2]|0;a[i+41>>0]=Sd(K)|0;a[i+39>>0]=Sd(K)|0;c[i+1624>>2]=Pd(K,3)|0;a[i+4>>0]=Sd(K)|0;a[i+5>>0]=Sd(K)|0;c[i+8>>2]=(Ud(K)|0)+1;c[i+12>>2]=(Ud(K)|0)+1;c[i+16>>2]=ld(K)|0;a[i+20>>0]=Sd(K)|0;a[i+21>>0]=Sd(K)|0;F=(Sd(K)|0)&255;a[i+22>>0]=F;d=i+24|0;c[d>>2]=0;if(F<<24>>24)c[d>>2]=Ud(K)|0;F=ld(K)|0;c[i+28>>2]=F;if((F+12|0)>>>0<=24?(F=ld(K)|0,c[i+32>>2]=F,(F+12|0)>>>0<=24):0){a[i+36>>0]=Sd(K)|0;a[i+37>>0]=Sd(K)|0;a[i+38>>0]=Sd(K)|0;a[i+40>>0]=Sd(K)|0;F=i+42|0;a[F>>0]=Sd(K)|0;a[i+43>>0]=Sd(K)|0;if(!(a[F>>0]|0))o=c[H>>2]|0;else{c[f>>2]=(Ud(K)|0)+1;d=(Ud(K)|0)+1|0;c[g>>2]=d;e=c[f>>2]|0;if(!e){d=-1094995529;break}if((d|0)==0?1:(e|0)>=(c[G+13120>>2]|0)){d=-1094995529;break}if((d|0)>=(c[G+13124>>2]|0)){d=-1094995529;break}E=i+1648|0;c[E>>2]=he(e,4)|0;F=he(c[g>>2]|0,4)|0;c[i+1652>>2]=F;if((c[E>>2]|0)==0|(F|0)==0){d=-12;break}F=(Sd(K)|0)&255;a[h>>0]=F;if(!(F<<24>>24)){F=c[f>>2]|0;d=F+-1|0;if((F|0)>1){i=c[H>>2]|0;f=i+1648|0;j=i+44|0;e=0;g=0;d=0;while(1){h=(Ud(K)|0)+1|0;c[(c[f>>2]|0)+(e<<2)>>2]=h;g=Jf(h|0,0,g|0,d|0)|0;h=C;e=e+1|0;d=(c[j>>2]|0)+-1|0;if((e|0)>=(d|0))break;else d=h}}else{h=0;g=0}e=c[G+13128>>2]|0;f=((e|0)<0)<<31>>31;if(!(f>>>0>h>>>0|(f|0)==(h|0)&e>>>0>g>>>0)){d=-1094995529;break}j=Hf(e|0,f|0,g|0,h|0)|0;c[(c[i+1648>>2]|0)+(d<<2)>>2]=j;j=c[H>>2]|0;i=j+48|0;F=c[i>>2]|0;d=F+-1|0;if((F|0)>1){f=j+1652|0;e=0;g=0;d=0;while(1){h=(Ud(K)|0)+1|0;c[(c[f>>2]|0)+(e<<2)>>2]=h;g=Jf(h|0,0,g|0,d|0)|0;h=C;e=e+1|0;d=(c[i>>2]|0)+-1|0;if((e|0)>=(d|0))break;else d=h}}else{h=0;g=0}e=c[G+13132>>2]|0;f=((e|0)<0)<<31>>31;if(!(f>>>0>h>>>0|(f|0)==(h|0)&e>>>0>g>>>0)){d=-1094995529;break}F=Hf(e|0,f|0,g|0,h|0)|0;c[(c[j+1652>>2]|0)+(d<<2)>>2]=F}F=(Sd(K)|0)&255;o=c[H>>2]|0;a[o+53>>0]=F}a[o+54>>0]=Sd(K)|0;F=(Sd(K)|0)&255;a[o+55>>0]=F;if((F<<24>>24?(a[o+56>>0]=Sd(K)|0,F=(Sd(K)|0)&255,a[o+57>>0]=F,F<<24>>24==0):0)?(F=o+60|0,c[F>>2]=(ld(K)|0)<<1,E=(ld(K)|0)<<1,c[o+64>>2]=E,(E+13|0)>>>0>26?1:((c[F>>2]|0)+13|0)>>>0>26):0){d=-1094995529;break}F=(Sd(K)|0)&255;a[o+68>>0]=F;if(F<<24>>24){d=o+69|0;md(d);d=nd(b,d,G)|0;if((d|0)<0)break}else d=0;a[o+1617>>0]=Sd(K)|0;F=(Ud(K)|0)+2|0;c[o+1620>>2]=F;E=G+13080|0;if(F>>>0<=(c[E>>2]|0)>>>0){a[o+1628>>0]=Sd(K)|0;if(Sd(K)|0?(F=Sd(K)|0,Pd(K,7)|0,F|0):0)od(b,o);j=o+44|0;i=o+1656|0;c[i>>2]=he((c[j>>2]|0)+1|0,4)|0;m=o+48|0;k=o+1660|0;c[k>>2]=he((c[m>>2]|0)+1|0,4)|0;F=G+13128|0;D=he(c[F>>2]|0,4)|0;n=o+1664|0;c[n>>2]=D;if((c[i>>2]|0)!=0?!((c[k>>2]|0)==0|(D|0)==0):0){do if(a[o+52>>0]|0){f=o+1648|0;e=c[f>>2]|0;if(!e){c[f>>2]=he(c[j>>2]|0,4)|0;c[o+1652>>2]=he(c[m>>2]|0,4)|0;e=c[f>>2]|0;if(!e){d=-12;break b}}h=c[o+1652>>2]|0;if(!h){d=-12;break b}f=c[j>>2]|0;if((f|0)>0){g=0;do{D=g;g=g+1|0;B=c[F>>2]|0;c[e+(D<<2)>>2]=((R(B,g)|0)/(f|0)|0)-((R(B,D)|0)/(f|0)|0);f=c[j>>2]|0}while((g|0)<(f|0))}e=c[m>>2]|0;if((e|0)<=0)break;g=G+13132|0;f=0;do{D=f;f=f+1|0;B=c[g>>2]|0;c[h+(D<<2)>>2]=((R(B,f)|0)/(e|0)|0)-((R(B,D)|0)/(e|0)|0);e=c[m>>2]|0}while((f|0)<(e|0))}while(0);i=c[i>>2]|0;c[i>>2]=0;if((c[j>>2]|0)>0){f=c[o+1648>>2]|0;e=0;g=0;do{g=(c[f+(e<<2)>>2]|0)+g|0;e=e+1|0;c[i+(e<<2)>>2]=g}while((e|0)<(c[j>>2]|0))}g=c[k>>2]|0;c[g>>2]=0;if((c[m>>2]|0)>0){f=c[o+1652>>2]|0;e=0;h=0;do{h=(c[f+(e<<2)>>2]|0)+h|0;e=e+1|0;c[g+(e<<2)>>2]=h}while((e|0)<(c[m>>2]|0))}e=c[F>>2]|0;if((e|0)>0){h=c[n>>2]|0;f=0;g=0;do{f=(g>>>0>(c[i+(f<<2)>>2]|0)>>>0&1)+f|0;c[h+(g<<2)>>2]=f;g=g+1|0;e=c[F>>2]|0}while((g|0)<(e|0))}B=R(c[G+13132>>2]|0,e)|0;A=o+1668|0;c[A>>2]=he(B,4)|0;e=o+1672|0;c[e>>2]=he(B,4)|0;f=o+1676|0;c[f>>2]=he(B,4)|0;D=G+13164|0;g=(c[D>>2]|0)+2|0;g=he(R(g,g)|0,4)|0;c[o+1688>>2]=g;if(!(c[A>>2]|0)){d=-12;break}if(!(c[e>>2]|0)){d=-12;break}if((c[f>>2]|0)==0|(g|0)==0){d=-12;break}if((B|0)>0){y=c[H>>2]|0;n=y+44|0;o=y+1656|0;p=y+48|0;q=y+1660|0;r=y+1652|0;s=c[q>>2]|0;t=c[y+1648>>2]|0;u=c[o>>2]|0;v=c[y+1668>>2]|0;w=c[y+1672>>2]|0;x=y+1652|0;y=y+1648|0;m=0;do{k=c[F>>2]|0;z=(m|0)%(k|0)|0;A=(m|0)/(k|0)|0;f=c[n>>2]|0;e=0;while(1){if((e|0)>=(f|0)){j=0;break}g=e+1|0;if(z>>>0<(c[(c[o>>2]|0)+(g<<2)>>2]|0)>>>0){j=e;break}else e=g}f=c[p>>2]|0;e=0;while(1){if((e|0)>=(f|0)){i=0;break}g=e+1|0;if(A>>>0<(c[(c[q>>2]|0)+(g<<2)>>2]|0)>>>0){i=e;break}else e=g}if((j|0)>0){g=c[(c[x>>2]|0)+(i<<2)>>2]|0;h=c[y>>2]|0;e=0;f=0;do{e=(R(c[h+(f<<2)>>2]|0,g)|0)+e|0;f=f+1|0}while((f|0)!=(j|0))}else e=0;if((i|0)>0){g=c[r>>2]|0;f=0;do{e=(R(c[g+(f<<2)>>2]|0,k)|0)+e|0;f=f+1|0}while((f|0)!=(i|0))}A=R(c[t+(j<<2)>>2]|0,A-(c[s+(i<<2)>>2]|0)|0)|0;A=e+z+A-(c[u+(j<<2)>>2]|0)|0;c[v+(m<<2)>>2]=A;c[w+(A<<2)>>2]=m;m=m+1|0}while((m|0)!=(B|0))}f=c[H>>2]|0;u=f+48|0;g=c[u>>2]|0;if((g|0)>0){v=f+44|0;w=f+1660|0;t=f+1656|0;x=f+1676|0;s=f+1668|0;e=0;h=0;f=c[v>>2]|0;do if((f|0)>0){p=c[w>>2]|0;r=h+1|0;q=p+(r<<2)|0;p=p+(h<<2)|0;o=0;g=c[q>>2]|0;do{i=c[p>>2]|0;h=o;o=o+1|0;if(i>>>0>>0){m=c[t>>2]|0;n=m+(o<<2)|0;m=m+(h<<2)|0;f=c[n>>2]|0;do{h=c[m>>2]|0;if(h>>>0>>0){j=c[x>>2]|0;k=c[s>>2]|0;g=h;do{c[j+(c[k+((R(c[F>>2]|0,i)|0)+g<<2)>>2]<<2)>>2]=e;g=g+1|0;f=c[n>>2]|0}while(g>>>0>>0);g=c[q>>2]|0}i=i+1|0}while(i>>>0>>0);f=c[v>>2]|0}e=e+1|0}while((o|0)<(f|0));h=r;g=c[u>>2]|0}else h=h+1|0;while((h|0)<(g|0));f=c[H>>2]|0}else e=0;m=he(e,4)|0;c[f+1680>>2]=m;if(!m){d=-12;break}n=f+48|0;e=c[n>>2]|0;if((e|0)>0){k=f+44|0;o=f+1660|0;p=f+1656|0;j=0;g=c[k>>2]|0;do{if((g|0)>0){h=(c[o>>2]|0)+(j<<2)|0;i=c[p>>2]|0;e=0;do{B=R(c[F>>2]|0,c[h>>2]|0)|0;c[m+((R(g,j)|0)+e<<2)>>2]=(c[i+(e<<2)>>2]|0)+B;e=e+1|0;g=c[k>>2]|0}while((e|0)<(g|0));e=c[n>>2]|0}j=j+1|0}while((j|0)<(e|0))}r=(c[E>>2]|0)-(c[G+13072>>2]|0)|0;g=c[f+1688>>2]|0;e=c[D>>2]|0;c[f+1684>>2]=g+(e+3<<2);do if((e|0)>-2){f=0;e=e+2|0;do{c[g+((R(e,f)|0)<<2)>>2]=-1;c[g+(f<<2)>>2]=-1;f=f+1|0;h=c[D>>2]|0;e=h+2|0}while((f|0)<(e|0));if((h|0)<0)break;q=c[H>>2]|0;n=q+1668|0;o=r<<1;p=(r|0)>0;q=q+1684|0;m=0;e=h;while(1){if((e|0)>=0){i=m>>r;j=c[n>>2]|0;k=c[q>>2]|0;h=0;while(1){f=c[j+((R(c[F>>2]|0,i)|0)+(h>>r)<<2)>>2]<>2]=f;e=c[D>>2]|0;if((h|0)<(e|0))h=h+1|0;else break}}if((m|0)<(e|0))m=m+1|0;else break}}while(0);if((hd(K)|0)<0)break;d=b+400+(J<<2)|0;pe(d);c[d>>2]=I;d=0;break a}else d=-12}else d=-1094995529}else d=-1094995529}else d=-1094995529;while(0);pe(L)}while(0);l=M;return d|0}function kd(a,b){a=a|0;b=b|0;var d=0;a=l;l=l+16|0;d=a;c[d>>2]=b;be(b+1648|0);be(b+1652|0);be(b+1656|0);be(b+1660|0);be(b+1664|0);be(b+1668|0);be(b+1672|0);be(b+1680|0);be(b+1676|0);be(b+1688|0);be(d);l=a;return}function ld(a){a=a|0;return Xd(a)|0}function md(b){b=b|0;var c=0,d=0,e=0;c=0;do{d=b+(c<<6)|0;e=d+16|0;do{a[d>>0]=16;d=d+1|0}while((d|0)<(e|0));a[b+1536+c>>0]=16;a[b+1542+c>>0]=16;c=c+1|0}while((c|0)!=6);d=b+384|0;c=1759;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+448|0;c=1759;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+512|0;c=1759;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+576|0;c=1823;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+640|0;c=1823;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+704|0;c=1823;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+768|0;c=1759;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+832|0;c=1759;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+896|0;c=1759;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+960|0;c=1823;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+1024|0;c=1823;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+1088|0;c=1823;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+1152|0;c=1759;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+1216|0;c=1759;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+1280|0;c=1759;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+1344|0;c=1823;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+1408|0;c=1823;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+1472|0;c=1823;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));return} +function nd(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;o=(c[b+136>>2]|0)+204|0;l=0;a:while(1){p=(l|0)>0?64:16;q=(l|0)>1;r=l+-2|0;m=(l|0)==3?3:1;j=1<<(l<<1)+4;j=(j|0)<64?j:64;n=(l|0)==0;k=0;do{if(!(((Sd(o)|0)&255)<<24>>24)){b=Ud(o)|0;if(b|0){if(k>>>0>>0){b=-1094995529;break a}b=k-b|0;Pf(e+(l*384|0)+(k<<6)|0,e+(l*384|0)+(b<<6)|0,p|0)|0;if(q)a[e+1536+(r*6|0)+k>>0]=a[e+1536+(r*6|0)+b>>0]|0}}else{if(q){g=(ld(o)|0)+8|0;a[e+1536+(r*6|0)+k>>0]=g;b=0}else{b=0;g=8}do{if(n){h=(d[342+b>>0]|0)<<2;i=326+b|0}else{h=(d[422+b>>0]|0)<<3;i=358+b|0}i=(d[i>>0]|0)+h|0;g=(g+256+(ld(o)|0)|0)%256|0;a[e+(l*384|0)+(k<<6)+i>>0]=g;b=b+1|0}while((b|0)<(j|0))}k=k+m|0}while((k|0)<6);l=l+1|0;if((l|0)>=4){s=16;break}}if((s|0)==16)if((c[f+4>>2]|0)==3){b=0;do{a[e+1216+b>>0]=a[e+832+b>>0]|0;a[e+1280+b>>0]=a[e+896+b>>0]|0;a[e+1408+b>>0]=a[e+1024+b>>0]|0;a[e+1472+b>>0]=a[e+1088+b>>0]|0;b=b+1|0}while((b|0)!=64);a[e+1543>>0]=a[e+1537>>0]|0;a[e+1544>>0]=a[e+1538>>0]|0;a[e+1546>>0]=a[e+1540>>0]|0;a[e+1547>>0]=a[e+1541>>0]|0;b=0}else b=0;return b|0}function od(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;g=(c[b+136>>2]|0)+204|0;if(a[e+21>>0]|0)a[e+1629>>0]=(Ud(g)|0)+2;a[e+1630>>0]=Sd(g)|0;f=(Sd(g)|0)&255;a[e+1631>>0]=f;if(f<<24>>24){a[e+1632>>0]=Ud(g)|0;b=Ud(g)|0;f=e+1633|0;a[f>>0]=b;if((b&255)>>>0<5){b=0;while(1){a[e+1634+b>>0]=Xd(g)|0;a[e+1639+b>>0]=Xd(g)|0;if((b|0)<(d[f>>0]|0))b=b+1|0;else{h=6;break}}}}else h=6;if((h|0)==6){a[e+1644>>0]=Ud(g)|0;a[e+1645>>0]=Ud(g)|0}return}function pd(a){a=a|0;var b=0;b=a+136|0;do qd(a);while((rd((c[b>>2]|0)+204|0)|0)!=0);return 1}function qd(a){a=a|0;var d=0,e=0,f=0,g=0;f=(c[a+136>>2]|0)+204|0;e=0;do{d=Pd(f,8)|0;e=d+e|0}while((d|0)==255);d=0;do{g=Pd(f,8)|0;d=g+d|0}while((g|0)==255);a:do if((c[a+2512>>2]|0)!=39)if((e|0)==132){ud(a);break}else{Rd(f,d<<3);break}else switch(e|0){case 256:{ud(a);break a}case 257:{b[a+4524>>1]=Pd(f,16)|0;break a}default:{Rd(f,d<<3);break a}}while(0);return}function rd(a){a=a|0;if((sd(a)|0)>0)a=(Qd(a,8)|0)!=128;else a=0;return a&1|0}function sd(a){a=a|0;var b=0;b=c[a+12>>2]|0;return b-(td(a)|0)|0}function td(a){a=a|0;return c[a+8>>2]|0}function ud(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;f=(c[b+136>>2]|0)+204|0;h=(Pd(f,8)|0)&255;g=b+4468|0;e=0;do{switch(h<<24>>24){case 0:{a[g>>0]=1;d=0;do{a[b+4420+(e<<4)+d>>0]=Pd(f,8)|0;d=d+1|0}while((d|0)!=16);break}case 1:{Rd(f,16);break}case 2:{Rd(f,32);break}default:{}}e=e+1|0}while((e|0)!=3);return}function vd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;d=c[b+52>>2]|0;f=a+60|0;if((d|0)>0)if((c[f>>2]|0)==0?(d=ee(d)|0,c[f>>2]=d,(d|0)==0):0)d=-12;else e=5;else{c[f>>2]=0;e=5}if((e|0)==5){e=a+12|0;c[e>>2]=b;c[a+424>>2]=0;c[a+800>>2]=1;d=a+912|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;d=a+936|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+928|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=wa[c[b+76>>2]&3](a)|0;if((d|0)<0){be(f);c[e>>2]=0}else d=0}return d|0}function wd(a){a=a|0;var b=0,d=0,e=0;if(a|0){b=a+12|0;d=c[b>>2]|0;if(d|0?(e=c[d+92>>2]|0,e|0):0)wa[e&3](a)|0;c[a+796>>2]=0;be(a+60|0);c[b>>2]=0;c[a+808>>2]=0}return 0}function xd(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;if((f|0)>0){j=(e|0)==0;h=0;do{i=d+(R(h,g)|0)|0;i=Ba[b&1](a,i)|0;if(!j)c[e+(h<<2)>>2]=i;h=h+1|0}while((h|0)!=(f|0))}return 0}function yd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;if((f|0)>0){h=(e|0)==0;g=0;do{i=za[b&1](a,d,g,0)|0;if(!h)c[e+(g<<2)>>2]=i;g=g+1|0}while((g|0)!=(f|0))}return 0}function zd(b,f,g){b=b|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=Ae(c[f+76>>2]|0)|0;m=l+4|0;a:do if(!(a[m>>0]|0))b=0;else{n=f+64|0;i=l+5|0;j=f+68|0;k=l+6|0;h=0;while(1){b=(R((((e[l+8+(h<<1)>>1]|0)>>>11&15)+8&65535)>>>3,c[n>>2]|0)|0)+31&-32;if((h+-1|0)>>>0<2){b=0-(0-b>>d[i>>0])|0;c[f+32+(h<<2)>>2]=b;g=0-(0-((c[j>>2]|0)+31&-32)>>d[k>>0])|0}else{c[f+32+(h<<2)>>2]=b;g=(c[j>>2]|0)+31&-32}b=le((R(b,g)|0)+32|0)|0;c[f+304+(h<<2)>>2]=b;if(!b){b=-1;break a}c[f+(h<<2)>>2]=c[b+4>>2];h=h+1|0;if((h|0)>=(d[m>>0]|0)){b=0;break}}}while(0);return b|0}function Ad(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;Kf(a|0,0,976)|0;e=(b|0)!=0;if(e){d=c[b+8>>2]|0;c[a+48>>2]=c[b+12>>2]}else d=-1;c[a+8>>2]=d;c[a+100>>2]=0;c[a+104>>2]=1;c[a+888>>2]=0;c[a+892>>2]=1;c[a+896>>2]=0;c[a+900>>2]=1;c[a+476>>2]=1;c[a+816>>2]=1;c[a+820>>2]=1;c[a+220>>2]=0;c[a+224>>2]=1;c[a+136>>2]=-1;c[a+416>>2]=-1;d=a+696|0;c[d>>2]=0;c[d+4>>2]=-2147483648;if((e?(f=c[b+52>>2]|0,(f|0)!=0):0)?(f=ee(f)|0,c[a+60>>2]=f,(f|0)==0):0)d=-12;else d=0;return d|0}function Bd(a){a=a|0;var b=0;b=Yd(976)|0;if(b){if((Ad(b,a)|0)<0){ae(b);b=0}}else b=0;return b|0}function Cd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=l;l=l+80|0;i=j;f=i;g=e;h=f+80|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));h=a+12|0;g=c[h>>2]|0;do if((g|0)!=0?(c[g+8>>2]|0)==0:0){c[d>>2]=0;f=c[a+124>>2]|0;g=c[a+128>>2]|0;if(g|f|0?Dd(f,g,0,0)|0:0){f=-22;break}xe(b);f=c[h>>2]|0;if(((c[f+16>>2]&32|0)==0?(c[e+28>>2]|0)==0:0)?(c[a+808>>2]&1|0)==0:0){f=0;break}f=za[c[f+88>>2]&1](a,b,d,i)|0;if(!(c[d>>2]|0)){xe(b);break}else{d=a+424|0;c[d>>2]=(c[d>>2]|0)+1;break}}else f=-22;while(0);l=j;return f|0}function Dd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((a|0)>0&(b|0)>0?(a+128|0)>>>0<(268435455/((b+128|0)>>>0)|0)>>>0:0)a=0;else a=-22;return a|0}function Ed(a,b){a=a|0;b=b|0;return 0}function Fd(a,b,c){a=a|0;b=b|0;c=c|0;return Gd(a,b,c)|0}function Gd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=a+8|0;if(!(c[k>>2]|0)){g=c[a+116>>2]|0;h=c[a+120>>2]|0;if((Dd(g,h,0,0)|0)>=0?(j=c[a+136>>2]|0,(j|0)>=0):0){f=b+64|0;e=b+68|0;if((c[f>>2]|0)>=1?(c[e>>2]|0)>=1:0)e=1;else{i=c[a+792>>2]|0;l=0-(0-(c[a+124>>2]|0)>>i)|0;c[f>>2]=(g|0)>(l|0)?g:l;i=0-(0-(c[a+128>>2]|0)>>i)|0;c[e>>2]=(h|0)>(i|0)?h:i;e=0}c[b+76>>2]=j;f=e;i=8}else e=-22}else{f=1;i=8}if((i|0)==8){e=qa[c[a+476>>2]&1](a,b,d)|0;if(!(c[k>>2]|f)){c[b+64>>2]=c[a+116>>2];c[b+68>>2]=c[a+120>>2]}}return e|0}function Hd(a,b,d){a=a|0;b=b|0;d=d|0;c[b+4>>2]=a;return Fd(a,c[b>>2]|0,d)|0}function Id(a,b){a=a|0;b=b|0;a=c[b>>2]|0;if(a|0)xe(a);return}function Jd(a){a=a|0;return}function Kd(a,b,c){a=a|0;b=b|0;c=c|0;return}function Ld(a){a=a|0;var b=0;b=a+8|0;c[b>>2]=0;c[b+4>>2]=-2147483648;b=a+16|0;c[b>>2]=0;c[b+4>>2]=-2147483648;b=a+64|0;c[b>>2]=-1;c[b+4>>2]=-1;b=a+72|0;c[b>>2]=0;c[b+4>>2]=0;b=a+32|0;c[a>>2]=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;return}function Md(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0;g=a+16|0;c[a+12>>2]=b;c[a+20>>2]=b+e;h=b+1|0;c[g>>2]=h;e=(d[b>>0]|0)<<18;c[a>>2]=e;f=b+2|0;c[g>>2]=f;e=(d[h>>0]|0)<<10|e;c[a>>2]=e;c[g>>2]=b+3;c[a>>2]=(d[f>>0]|0)<<2|e|2;c[a+4>>2]=510;return}function Nd(){if(!(c[650]|0)){Od();c[650]=1}return}function Od(){var b=0,c=0,e=0,f=0,g=0;b=0;while(1)if(b){f=(b&65280|0)==0;a[4741+b>>0]=(f?8:0)-(d[2334+(f?b:b>>>8)>>0]|0);b=b+1|0;if((b|0)==512){f=0;break}else continue}else{a[4741+b>>0]=9;b=1;continue}do{c=f<<1;b=0;do{g=a[1887+(f<<2)+b>>0]|0;e=(b<<7)+c|0;a[5253+(e|1)>>0]=g;a[5253+e>>0]=g;b=b+1|0}while((b|0)!=4);e=(d[2143+f>>0]|0)<<1;a[5765+(c+128)>>0]=e;a[5765+(c+129)>>0]=e|1;e=128-c|0;if(!f){b=0;c=1}else{c=(d[2207+f>>0]|0)<<1;b=(c|1)&255;c=c&255}a[5765+(e+-1)>>0]=c;a[5765+(e+-2)>>0]=b;f=f+1|0}while((f|0)!=64);b=6021;c=2271;e=b+63|0;do{a[b>>0]=a[c>>0]|0;b=b+1|0;c=c+1|0}while((b|0)<(e|0));return}function Pd(a,b){a=a|0;b=b|0;var e=0,f=0,g=0;e=a+8|0;g=c[e>>2]|0;f=c[a+16>>2]|0;a=(c[a>>2]|0)+(g>>>3)|0;a=(Mf(d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0)|0)<<(g&7)>>>(32-b|0);b=g+b|0;c[e>>2]=f>>>0>b>>>0?b:f;return a|0}function Qd(a,b){a=a|0;b=b|0;var e=0;e=c[a+8>>2]|0;a=(c[a>>2]|0)+(e>>>3)|0;return (Mf(d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0)|0)<<(e&7)>>>(32-b|0)|0}function Rd(a,b){a=a|0;b=b|0;var d=0;d=a+8|0;a=c[a+16>>2]|0;b=(c[d>>2]|0)+b|0;c[d>>2]=a>>>0>b>>>0?b:a;return}function Sd(a){a=a|0;var b=0,e=0,f=0;e=a+8|0;f=c[e>>2]|0;b=(d[(c[a>>2]|0)+(f>>>3)>>0]|0)<<(f&7)>>>7&1;c[e>>2]=((f|0)<(c[a+16>>2]|0)&1)+f;return b|0}function Td(a,b){a=a|0;b=b|0;var c=0;do if(b)if((b|0)<26){a=Pd(a,b)|0;break}else{b=b+-16|0;c=(Pd(a,16)|0)<>>0>65535;e=b?e>>>16:e;b=b?16:0;c=(e&65280|0)==0;b=31-(d[2334+(c?e:e>>>8)>>0]|0)-(c?b:b|8)|0;Wd(a,b);return (Td(a,b+1|0)|0)+-1|0}function Vd(a){a=a|0;var b=0,d=0;b=l;l=l+32|0;d=b;c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];c[d+12>>2]=c[a+12>>2];c[d+16>>2]=c[a+16>>2];a=Td(d,32)|0;l=b;return a|0}function Wd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+8|0;e=c[d>>2]|0;f=0-e|0;a=(c[a+16>>2]|0)-e|0;c[d>>2]=((b|0)<(f|0)?f:(a|0)<(b|0)?a:b)+e;return}function Xd(a){a=a|0;a=Ud(a)|0;return ((a&1|0)==0?0-(a>>>1)|0:(a+1|0)>>>1)|0}function Yd(a){a=a|0;var b=0,d=0;d=(c[44]|0)+-32|0;b=a;while(1){if(d>>>0>>0){a=0;break}a=qf(b)|0;if((b|0)!=0|(a|0)!=0)break;else b=1}return a|0}function Zd(a,b){a=a|0;b=b|0;if(((c[44]|0)+-32|0)>>>0>>0)a=0;else a=yf(a,((b|0)==0&1)+b|0)|0;return a|0}function _d(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;f=g;if(!(($d(d,b,f)|0)==0?(f=c[f>>2]|0,e=Zd(a,f)|0,!((f|0)!=0&(e|0)==0)):0)){ae(a);e=0}l=g;return e|0}function $d(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=R(b,a)|0;if((a|0)!=0&(b|a)>>>0>65535?((e>>>0)/(a>>>0)|0|0)!=(b|0):0)a=-22;else{c[d>>2]=e;a=0}return a|0}function ae(a){a=a|0;wf(a);return}function be(a){a=a|0;ae(c[a>>2]|0);c[a>>2]=0;return}function ce(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)!=0?(2147483647/(c>>>0)|0)>>>0>b>>>0:0)a=Zd(a,R(c,b)|0)|0;else a=0;return a|0}function de(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=_d(c[a>>2]|0,b,d)|0;c[a>>2]=e;return ((d|0)!=0&((b|0)!=0&(e|0)==0)?-12:0)|0}function ee(a){a=a|0;var b=0;b=Yd(a)|0;if(b|0)Kf(b|0,0,a|0)|0;return b|0}function fe(a,b,c){a=a|0;b=b|0;c=c|0;ge(a,b,c);return}function ge(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((c[b>>2]|0)>>>0<=d>>>0){e=((d*17|0)>>>4)+32|0;d=e>>>0>d>>>0?e:d;ae(c[a>>2]|0);e=Yd(d)|0;c[a>>2]=e;c[b>>2]=(e|0)==0?0:d}return}function he(a,b){a=a|0;b=b|0;if((b|0)!=0?(2147483647/(b>>>0)|0)>>>0>a>>>0:0)a=Yd(R(b,a)|0)|0;else a=0;return a|0}function ie(a,b){a=a|0;b=b|0;if((b|0)!=0?(2147483647/(b>>>0)|0)>>>0>a>>>0:0)a=ee(R(b,a)|0)|0;else a=0;return a|0}function je(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=l;l=l+16|0;h=j;g=ee(24)|0;c[h>>2]=g;i=g;do if(g){c[g>>2]=a;c[g+4>>2]=b;c[g+12>>2]=d|0?d:7;c[g+16>>2]=e;c[g+8>>2]=1;if(f&1|0){g=g+20|0;c[g>>2]=c[g>>2]|1}d=ee(12)|0;if(!d){be(h);d=0;break}else{c[d>>2]=i;c[d+4>>2]=a;c[d+8>>2]=b;break}}else d=0;while(0);l=j;return d|0}function ke(a,b){a=a|0;b=b|0;ae(b);return}function le(a){a=a|0;var b=0,d=0,e=0;e=l;l=l+16|0;d=e;b=Yd(a)|0;c[d>>2]=b;if(b){a=je(b,a,7,0,0)|0;if(!a){be(d);a=0}}else a=0;l=e;return a|0}function me(a){a=a|0;var b=0;b=le(a)|0;if(!b)b=0;else Kf(c[b+4>>2]|0,0,a|0)|0;return b|0}function ne(a){a=a|0;var b=0;b=ee(12)|0;if(!b)b=0;else{c[b>>2]=c[a>>2];c[b+4>>2]=c[a+4>>2];c[b+8>>2]=c[a+8>>2];oe((c[a>>2]|0)+8|0,1)|0}return b|0}function oe(a,b){a=a|0;b=b|0;var d=0;d=c[a>>2]|0;c[a>>2]=d+b;return d+b|0}function pe(a){a=a|0;var b=0,d=0,e=0,f=0;f=l;l=l+16|0;d=f;if((a|0?(e=c[a>>2]|0,e|0):0)?(b=c[e>>2]|0,c[d>>2]=b,be(a),b,(oe(b+8|0,-1)|0)==0):0){ta[c[b+12>>2]&7](c[b+16>>2]|0,c[b>>2]|0);be(d)}l=f;return}function qe(a,b,d){a=a|0;b=b|0;d=d|0;a=a+360|0;c[a>>2]=b;c[a+4>>2]=d;return}function re(a,b,d){a=a|0;b=b|0;d=d|0;a=a+376|0;c[a>>2]=b;c[a+4>>2]=d;return}function se(a,b,d){a=a|0;b=b|0;d=d|0;a=a+368|0;c[a>>2]=b;c[a+4>>2]=d;return}function te(a,b){a=a|0;b=b|0;c[a+392>>2]=b;return}function ue(){var a=0;a=ee(400)|0;if(!a)a=0;else ve(a);return a|0}function ve(a){a=a|0;var b=0;Kf(a|0,0,400)|0;b=a+136|0;c[b>>2]=0;c[b+4>>2]=-2147483648;b=a+144|0;c[b>>2]=0;c[b+4>>2]=-2147483648;b=a+128|0;c[b>>2]=0;c[b+4>>2]=-2147483648;qe(a,0,-2147483648);re(a,0,0);se(a,-1,-1);te(a,-1);c[a+80>>2]=1;c[a+120>>2]=0;c[a+124>>2]=1;c[a+76>>2]=-1;c[a+344>>2]=2;c[a+348>>2]=2;c[a+352>>2]=2;c[a+340>>2]=0;c[a+356>>2]=0;return}function we(a){a=a|0;var b=0;if(a|0?(b=c[a>>2]|0,b|0):0){xe(b);be(a)}return}function xe(a){a=a|0;var b=0;b=0;do{pe(a+304+(b<<2)|0);b=b+1|0}while((b|0)!=8);ve(a);return}function ye(a,b){a=a|0;b=b|0;Pf(a|0,b|0,400)|0;Kf(b|0,0,400)|0;ve(b);return}function ze(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;c[a+76>>2]=c[b+76>>2];c[a+64>>2]=c[b+64>>2];c[a+68>>2]=c[b+68>>2];c[a+388>>2]=c[b+388>>2];h=b+296|0;g=c[h+4>>2]|0;d=a+296|0;c[d>>2]=c[h>>2];c[d+4>>2]=g;c[a+72>>2]=c[b+72>>2];d=c[b+304>>2]|0;if(!d)oa();else{f=0;e=d}while(1){if(e|0?(h=ne(e)|0,c[a+304+(f<<2)>>2]=h,(h|0)==0):0){e=5;break}d=f+1|0;if(d>>>0>=8){e=8;break}f=d;e=c[b+304+(d<<2)>>2]|0}if((e|0)==5){xe(a);d=-12}else if((e|0)==8){c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];c[a+28>>2]=c[b+28>>2];d=a+32|0;h=b+32|0;c[d>>2]=c[h>>2];c[d+4>>2]=c[h+4>>2];c[d+8>>2]=c[h+8>>2];c[d+12>>2]=c[h+12>>2];c[d+16>>2]=c[h+16>>2];c[d+20>>2]=c[h+20>>2];c[d+24>>2]=c[h+24>>2];c[d+28>>2]=c[h+28>>2];d=0}return d|0}function Ae(a){a=a|0;var b=0,d=0;b=0;while(1){if((c[180+(b*24|0)>>2]|0)==(a|0)){d=3;break}b=b+1|0;if(b>>>0>=4){b=0;break}}if((d|0)==3)b=180+(b*24|0)+4|0;return b|0}function Be(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=(c[b+24>>2]|0)==0?1:3;do if((f|0)<=(e|0))if((f|0)==(e|0)&(a[b+29>>0]|0)!=0){f=c[b+12>>2]|0;c[d>>2]=c[f+32>>2];f=c[f>>2]|0;break}else{c[d>>2]=0;f=0;break}else{f=c[b+8>>2]|0;c[d>>2]=c[f+32+(e<<2)>>2];f=c[f+(e<<2)>>2]|0}while(0);return f|0}function Ce(d,e){d=d|0;e=e|0;var f=0;if(!(c[d+8>>2]|0))d=-1;else{c[e>>2]=c[d+16>>2];c[e+4>>2]=c[d+20>>2];a[e+8>>0]=c[d+24>>2];f=a[d+31>>0]|0;a[e+9>>0]=(a[d+29>>0]|0)!=0&f<<24>>24==0&1;a[e+12>>0]=a[d+33>>0]|0;a[e+13>>0]=f;a[e+14>>0]=a[d+32>>0]|0;a[e+10>>0]=c[d+36>>2];a[e+11>>0]=a[d+30>>0]|0;a[e+15>>0]=a[d+34>>0]|0;b[e+16>>1]=b[d+48>>1]|0;d=0}return d|0}function De(b,d){b=b|0;d=d|0;var e=0,f=0;if((c[b+8>>2]|0)!=0?(f=b+68|0,(a[f>>0]|0)==0):0){e=Ee(b,d)|0;if(!e){a[f>>0]=1;c[b+72>>2]=d;c[b+92>>2]=Be(b,b+108|0,0)|0;if(!(c[b+24>>2]|0))e=1;else{c[b+96>>2]=Be(b,b+112|0,1)|0;c[b+100>>2]=Be(b,b+116|0,2)|0;e=3}if(!(a[b+29>>0]|0))e=0;else e=Be(b,b+120|0,e)|0;c[b+104>>2]=e;c[b+80>>2]=0;e=0}}else e=-1;return e|0}function Ee(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0;if(e>>>0>1)e=-1;else{a[b+76>>0]=(e|0)==1&1;g=b+77|0;a[g>>0]=0;a[b+78>>0]=0;h=b+24|0;if(((c[h>>2]|0)+-1|0)>>>0<2?(e=b+16|0,i=c[e>>2]|0,f=b+84|0,c[f>>2]=(i+1|0)/2|0,c[b+88>>2]=((c[b+20>>2]|0)+1|0)/2|0,c[b+124>>2]=Yd(i)|0,c[b+128>>2]=Yd(c[e>>2]|0)|0,c[b+196>>2]=Yd((c[f>>2]<<1)+14|0)|0,(c[h>>2]|0)==1):0){e=0;do{c[b+132+(e<<2)>>2]=Yd(c[f>>2]|0)|0;c[b+164+(e<<2)>>2]=Yd(c[f>>2]|0)|0;e=e+1|0}while((e|0)!=8)}e=b+36|0;Fe(b+200|0,d[b+30>>0]|0,a[g>>0]|0?16:8,c[e>>2]|0,d[b+32>>0]|0);if(!(c[h>>2]|0))e=4;else e=c[276+(c[e>>2]<<2)>>2]|0;c[b+248>>2]=e;e=0}return e|0}function Fe(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0;n=30-d|0;g=+((1<>2]=Df(i*(q*2.0))|0;o=1.0-g;p=o-h;c[a+24>>2]=Df(i*(g*2.0*o/p))|0;c[a+28>>2]=Df(i*(h*2.0*q/p))|0;c[a+32>>2]=Df(i*(o*2.0))|0}d=Df(j)|0;c[a+8>>2]=d;c[a>>2]=n;e=1<>2]=e;c[a+36>>2]=1<>2]=d;c[a+16>>2]=e;c[a+40>>2]=b;c[a+44>>2]=f;return}function Ge(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0;if((c[b+40>>2]|0)==8?(c[b+44>>2]|0)==0:0){if((i|0)>0){g=0;h=e;while(1){o=a[f+g>>0]|0;a[h>>0]=o;a[h+1>>0]=o;a[h+2>>0]=o;g=g+1|0;if((g|0)==(i|0))break;else h=h+j|0}}}else k=5;if((k|0)==5?(l=c[b+12>>2]|0,m=c[b+16>>2]|0,n=c[b>>2]|0,(i|0)>0):0){g=0;while(1){o=(He((R(d[f+g>>0]|0,l)|0)+m>>n)|0)&255;a[e>>0]=o;a[e+1>>0]=o;a[e+2>>0]=o;g=g+1|0;if((g|0)==(i|0))break;else e=e+j|0}}return}function He(a){a=a|0;return ((a|0)<0?0:(a|0)<255?a:255)|0}function Ie(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;s=c[b+20>>2]|0;m=c[b+24>>2]|0;n=c[b+28>>2]|0;o=c[b+32>>2]|0;p=c[b+12>>2]|0;q=c[b+16>>2]|0;r=c[b>>2]|0;l=c[b+36>>2]|0;if((i|0)>0){k=0;b=e;while(1){t=R(d[f+k>>0]|0,p)|0;e=(d[g+k>>0]|0)-l|0;u=(d[h+k>>0]|0)-l|0;t=t+q|0;a[b>>0]=He(t+(R(u,s)|0)>>r)|0;a[b+1>>0]=He(t-((R(u,n)|0)+(R(e,m)|0))>>r)|0;a[b+2>>0]=He(t+(R(e,o)|0)>>r)|0;k=k+1|0;if((k|0)==(i|0))break;else b=b+j|0}}return}function Je(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0;if((c[b+40>>2]|0)==8?(c[b+44>>2]|0)==0:0){if((i|0)>0){k=0;l=e;while(1){a[l>>0]=a[h+k>>0]|0;a[l+1>>0]=a[f+k>>0]|0;a[l+2>>0]=a[g+k>>0]|0;k=k+1|0;if((k|0)==(i|0))break;else l=l+j|0}}}else m=5;if((m|0)==5?(n=c[b+12>>2]|0,o=c[b+16>>2]|0,p=c[b>>2]|0,(i|0)>0):0){k=0;while(1){a[e>>0]=He((R(d[h+k>>0]|0,n)|0)+o>>p)|0;a[e+1>>0]=He((R(d[f+k>>0]|0,n)|0)+o>>p)|0;a[e+2>>0]=He((R(d[g+k>>0]|0,n)|0)+o>>p)|0;k=k+1|0;if((k|0)==(i|0))break;else e=e+j|0}}return}function Ke(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;o=c[b+12>>2]|0;m=c[b+16>>2]|0;n=c[b>>2]|0;l=c[b+36>>2]|0;if((i|0)>0){k=0;b=e;while(1){q=d[f+k>>0]|0;r=(d[g+k>>0]|0)-l|0;e=(d[h+k>>0]|0)-l|0;p=q-r|0;a[b>>0]=He((R(p+e|0,o)|0)+m>>n)|0;a[b+1>>0]=He((R(r+q|0,o)|0)+m>>n)|0;a[b+2>>0]=He((R(p-e|0,o)|0)+m>>n)|0;k=k+1|0;if((k|0)==(i|0))break;else b=b+j|0}}return}function Le(a,b,d){a=a|0;b=b|0;d=d|0;c[b>>2]=0;c[d>>2]=1;return}function Me(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;p=b+80|0;r=c[p>>2]|0;a:do if(r>>>0<(c[b+20>>2]|0)>>>0){s=c[b+16>>2]|0;n=(c[b+92>>2]|0)+(R(c[b+108>>2]|0,r)|0)|0;o=b+76|0;if(!(a[o>>0]|0))q=a[b+78>>0]|0?4:3;else q=4;switch(c[b+24>>2]|0){case 0:{Da[c[b+248>>2]&7](b+200|0,e,n,0,0,s,q);break}case 1:{if(!r){h=b+96|0;i=b+112|0;j=b+100|0;k=b+116|0;l=b+84|0;m=b+88|0;g=0;do{f=(g|0)>4?g+-8|0:g;if((f|0)<0)f=0;else{t=c[m>>2]|0;f=(f|0)<(t|0)?f:t+-1|0}u=(c[h>>2]|0)+(R(c[i>>2]|0,f)|0)|0;t=(c[j>>2]|0)+(R(c[k>>2]|0,f)|0)|0;Pf(c[b+132+(g<<2)>>2]|0,u|0,c[l>>2]|0)|0;Pf(c[b+164+(g<<2)>>2]|0,t|0,c[l>>2]|0)|0;g=g+1|0}while((g|0)!=8)}f=r>>1;g=(f|0)%8|0;u=r&1;h=b+124|0;l=b+196|0;m=b+30|0;t=b+28|0;Ne(c[h>>2]|0,b+132|0,s,g,c[l>>2]|0,d[m>>0]|0,u,d[t>>0]|0);i=b+128|0;Ne(c[i>>2]|0,b+164|0,s,g,c[l>>2]|0,d[m>>0]|0,u,d[t>>0]|0);if(u|0){m=(g+5|0)%8|0;l=f+5|0;t=c[b+88>>2]|0;t=(l|0)<(t|0)?l:t+-1|0;l=(c[b+96>>2]|0)+(R(t,c[b+112>>2]|0)|0)|0;t=(c[b+100>>2]|0)+(R(c[b+116>>2]|0,t)|0)|0;u=b+84|0;Pf(c[b+132+(m<<2)>>2]|0,l|0,c[u>>2]|0)|0;Pf(c[b+164+(m<<2)>>2]|0,t|0,c[u>>2]|0)|0}Da[c[b+248>>2]&7](b+200|0,e,n,c[h>>2]|0,c[i>>2]|0,s,q);break}case 2:{u=(c[b+96>>2]|0)+(R(c[b+112>>2]|0,r)|0)|0;j=(c[b+100>>2]|0)+(R(c[b+116>>2]|0,r)|0)|0;t=b+124|0;k=b+30|0;l=b+28|0;m=b+196|0;Oe(c[t>>2]|0,u,s,d[k>>0]|0,d[l>>0]|0,c[m>>2]|0);u=b+128|0;Oe(c[u>>2]|0,j,s,d[k>>0]|0,d[l>>0]|0,c[m>>2]|0);Da[c[b+248>>2]&7](b+200|0,e,n,c[t>>2]|0,c[u>>2]|0,s,q);break}case 3:{t=(c[b+96>>2]|0)+(R(c[b+112>>2]|0,r)|0)|0;u=(c[b+100>>2]|0)+(R(c[b+116>>2]|0,r)|0)|0;Da[c[b+248>>2]&7](b+200|0,e,n,t,u,s,q);break}default:{f=-1;break a}}do if(!(a[b+31>>0]|0)){if(a[o>>0]|0){if(!(a[b+29>>0]|0)){Qe(e+3|0,s);break}Re(b+200|0,e+3|0,(c[b+104>>2]|0)+(R(c[b+120>>2]|0,r)|0)|0,s);if(a[b+33>>0]|0)Se(e,s)}}else{Pe(b+200|0,e,(c[b+104>>2]|0)+(R(c[b+120>>2]|0,r)|0)|0,s,q);if(a[o>>0]|0)Qe(e+3|0,s)}while(0);c[p>>2]=(c[p>>2]|0)+1;f=0}else f=-1;while(0);return f|0}function Ne(a,e,f,g,h,i,j,k){a=a|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;n=c[e+((g+5&7)<<2)>>2]|0;o=c[e+((g+6&7)<<2)>>2]|0;p=c[e+((g+7&7)<<2)>>2]|0;q=c[e+((g&7)<<2)>>2]|0;r=c[e+((g+1&7)<<2)>>2]|0;s=c[e+((g+2&7)<<2)>>2]|0;g=c[e+((g+3&7)<<2)>>2]|0;l=i+-8|0;m=1<>1;t=(f+1|0)/2|0;e=(f|0)>0;if(!j){if(e){e=0;do{u=R(d[o+e>>0]|0,-6)|0;j=R(d[r+e>>0]|0,-10)|0;b[h+(e+3<<1)>>1]=((d[n+e>>0]|0)<<1)+m+u+((d[p+e>>0]|0)*18|0)+((d[q+e>>0]|0)*57|0)+j+((d[s+e>>0]|0)<<2)-(d[g+e>>0]|0)>>l;e=e+1|0}while((e|0)<(t|0))}}else if(e){e=0;do{j=R(d[p+e>>0]|0,-10)|0;u=R(d[s+e>>0]|0,-6)|0;b[h+(e+3<<1)>>1]=m-(d[n+e>>0]|0)+((d[o+e>>0]|0)<<2)+j+((d[q+e>>0]|0)*57|0)+((d[r+e>>0]|0)*18|0)+u+((d[g+e>>0]|0)<<1)>>l;e=e+1|0}while((e|0)<(t|0))}m=h+6|0;g=b[m>>1]|0;e=0;do{b[h+(e<<1)>>1]=g;e=e+1|0}while((e|0)!=3);l=t+3|0;g=b[h+(t+2<<1)>>1]|0;e=0;do{b[h+(l+e<<1)>>1]=g;e=e+1|0}while((e|0)!=4);if(!k)Ye(a,m,f,i);else Ze(a,m,f,i);return}function Oe(b,c,d,e,f,g){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;i=(d+1|0)/2|0;h=g+3|0;Pf(h|0,c|0,i|0)|0;Kf(g|0,a[c>>0]|0,3)|0;Kf(g+(i+3)|0,a[c+(i+-1)>>0]|0,4)|0;if(!f)Ve(b,h,d,e);else We(b,h,d,e);return}function Pe(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0;j=c[b+40>>2]|0;k=1<0){i=0;b=e;while(1){l=d[f+i>>0]|0;a[b>>0]=(R(d[b>>0]|0,l)|0)+k>>j;e=b+1|0;a[e>>0]=(R(d[e>>0]|0,l)|0)+k>>j;e=b+2|0;a[e>>0]=(R(d[e>>0]|0,l)|0)+k>>j;i=i+1|0;if((i|0)==(g|0))break;else b=b+h|0}}return}function Qe(b,c){b=b|0;c=c|0;var d=0;if((c|0)>0){d=0;while(1){a[b>>0]=-1;d=d+1|0;if((d|0)==(c|0))break;else b=b+4|0}}return}function Re(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;if((c[b+40>>2]|0)==8){if((g|0)>0){b=0;while(1){a[e>>0]=a[f+b>>0]|0;b=b+1|0;if((b|0)==(g|0))break;else e=e+4|0}}}else{i=c[b+8>>2]|0;j=c[b+4>>2]|0;h=c[b>>2]|0;if((g|0)>0){b=0;while(1){a[e>>0]=(R(d[f+b>>0]|0,i)|0)+j>>h;b=b+1|0;if((b|0)==(g|0))break;else e=e+4|0}}}return}function Se(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;if(!(c[651]|0)){c[651]=1;Te()}if((e|0)>0){h=0;while(1){g=a[b+3>>0]|0;f=g&255;if(!(g<<24>>24)){a[b>>0]=-1;a[b+1>>0]=-1;g=b+2|0;f=-1}else{i=c[2608+(f<<2)>>2]|0;a[b>>0]=Ue(d[b>>0]|0,f,i)|0;j=b+1|0;a[j>>0]=Ue(d[j>>0]|0,f,i)|0;j=b+2|0;g=j;f=(Ue(d[j>>0]|0,f,i)|0)&255}a[g>>0]=f;h=h+1|0;if((h|0)==(e|0))break;else b=b+4|0}}return}function Te(){var a=0;a=1;do{c[2608+(a<<2)>>2]=(((a|0)/2|0)+16711808|0)/(a|0)|0;a=a+1|0}while((a|0)!=256);return}function Ue(a,b,c){a=a|0;b=b|0;c=c|0;c=((R(c,a)|0)+32768|0)>>>16;return (a>>>0>>0?c:255)|0}function Ve(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;i=(1<1){l=e+-2|0;k=l>>>1;j=k+1|0;k=k<<1;h=k+2|0;g=c;f=b;while(1){a[f>>0]=a[g>>0]|0;n=R((d[g+2>>0]|0)+(d[g+-1>>0]|0)|0,-11)|0;m=g;g=g+1|0;a[f+1>>0]=Xe(32-(d[m+-3>>0]|0)-(d[m+4>>0]|0)+((d[m+3>>0]|0)+(d[m+-2>>0]|0)<<2)+n+(((d[g>>0]|0)+(d[m>>0]|0)|0)*40|0)>>6,i)|0;e=e+-2|0;if((e|0)<=1)break;else f=f+2|0}b=b+h|0;f=c+j|0;e=l-k|0}else f=c;if(e|0)a[b>>0]=a[f>>0]|0;return}function We(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=(1<>0]|0;g=d[c+-2>>0]|0;j=d[c+-1>>0]|0;h=d[c>>0]|0;f=d[c+1>>0]|0;i=d[c+2>>0]|0;if((e|0)>1){q=e+-2|0;p=q>>>1;r=p<<1;o=r+2|0;p=p+1|0;n=h;l=b;m=c;while(1){h=d[m+3>>0]|0;t=n*57|0;a[l>>0]=Xe((k<<1)+32+(R(g,-6)|0)+(j*18|0)+t+(R(f,-10)|0)+(i<<2)-h>>6,s)|0;a[l+1>>0]=Xe(32-k+(g<<2)+(R(j,-10)|0)+t+(f*18|0)+(R(i,-6)|0)+(h<<1)>>6,s)|0;e=e+-2|0;if((e|0)<=1)break;else{t=i;l=l+2|0;m=m+1|0;i=h;k=g;g=j;j=n;n=f;f=t}}m=h;h=f;l=n;b=b+o|0;c=c+p|0;f=q-r|0}else{m=i;i=f;l=j;j=g;g=k;f=e}if(f|0)a[b>>0]=Xe((g<<1)+32+(R(j,-6)|0)+(l*18|0)+(h*57|0)+(R(i,-10)|0)+(m<<2)-(d[c+3>>0]|0)>>6,s)|0;return}function Xe(a,b){a=a|0;b=b|0;return ((a|0)<0?0:(a|0)>(b|0)?b:a)|0}function Ye(c,d,e,f){c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;n=(1<>1;j=20-f|0;h=1<1){l=e+-2|0;m=l>>>1;k=m+1|0;m=m<<1;i=m+2|0;g=d;f=c;while(1){a[f>>0]=Xe((b[g>>1]|0)+p>>o,n)|0;r=R((b[g+4>>1]|0)+(b[g+-2>>1]|0)|0,-11)|0;q=g;g=g+2|0;a[f+1>>0]=Xe(h-(b[q+-6>>1]|0)-(b[q+8>>1]|0)+((b[q+6>>1]|0)+(b[q+-4>>1]|0)<<2)+r+(((b[g>>1]|0)+(b[q>>1]|0)|0)*40|0)>>j,n)|0;e=e+-2|0;if((e|0)<=1)break;else f=f+2|0}c=c+i|0;f=d+(k<<1)|0;e=l-m|0}else f=d;if(e|0)a[c>>0]=Xe((b[f>>1]|0)+p>>o,n)|0;return}function Ze(c,d,e,f){c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=(1<>1]|0;g=b[d+-4>>1]|0;j=b[d+-2>>1]|0;h=b[d>>1]|0;f=b[d+2>>1]|0;i=b[d+4>>1]|0;if((e|0)>1){q=e+-2|0;p=q>>>1;r=p<<1;o=r+2|0;p=p+1|0;n=h;l=c;m=d;while(1){h=b[m+6>>1]|0;v=n*57|0;a[l>>0]=Xe((k<<1)+t+(R(g,-6)|0)+(j*18|0)+v+(R(f,-10)|0)+(i<<2)-h>>s,u)|0;a[l+1>>0]=Xe(t-k+(g<<2)+(R(j,-10)|0)+v+(f*18|0)+(R(i,-6)|0)+(h<<1)>>s,u)|0;e=e+-2|0;if((e|0)<=1)break;else{v=i;l=l+2|0;m=m+2|0;i=h;k=g;g=j;j=n;n=f;f=v}}m=h;h=f;l=n;c=c+o|0;d=d+(p<<1)|0;f=q-r|0}else{m=i;i=f;l=j;j=g;g=k;f=e}if(f|0)a[c>>0]=Xe((g<<1)+t+(R(j,-6)|0)+(l*18|0)+(h*57|0)+(R(i,-10)|0)+(m<<2)-(b[d+6>>1]|0)>>s,u)|0;return}function _e(){return ee(252)|0}function $e(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=l;l=l+48|0;v=y;h=af(v,f,g,d[e+40>>0]|0)|0;do if((h|0)>=0){x=c[v>>2]|0;q=c[v+4>>2]|0;m=a[v+12>>0]|0;r=m&255;n=c[v+24>>2]|0;o=a[v+13>>0]|0;s=o&255;t=e+16|0;c[t>>2]=x;u=e+20|0;c[u>>2]=q;i=c[v+8>>2]|0;j=e+24|0;c[j>>2]=i;switch(i|0){case 5:{i=2;p=4;break}case 4:{i=1;p=4;break}default:{k=1;j=i}}if((p|0)==4){c[j>>2]=i;k=0;j=i}a[e+28>>0]=k;a[e+29>>0]=m;a[e+33>>0]=a[v+15>>0]|0;a[e+31>>0]=a[v+14>>0]|0;a[e+32>>0]=a[v+16>>0]|0;c[e+36>>2]=n;a[e+30>>0]=o;a[e+34>>0]=a[v+17>>0]|0;b[e+48>>1]=b[v+18>>1]|0;b[e+50>>1]=b[v+20>>1]|0;b[e+52>>1]=b[v+22>>1]|0;i=e+44|0;c[i>>2]=c[v+32>>2];if(((((c[v+28>>2]|0)+h|0)>>>0<=g>>>0?(bf(e,f+h|0,g-h|0,x,q,j,s,r)|0)>=0:0)?(cf(e),w=c[e+8>>2]|0,(c[w+64>>2]|0)>=(c[t>>2]|0)):0)?(c[w+68>>2]|0)>=(c[u>>2]|0):0){c[e+80>>2]=-1;h=0;break}we(e+8|0);we(e+12|0);c[i>>2]=0;h=-1}while(0);l=y;return h|0}function af(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;J=l;l=l+32|0;x=J+20|0;A=J+16|0;C=J+8|0;D=J+12|0;E=J+4|0;F=J;a:do if(((((((f|0)>=6?(a[e>>0]|0)==66:0)?(a[e+1>>0]|0)==80:0)?(a[e+2>>0]|0)==71:0)?(a[e+3>>0]|0)==-5:0)?(H=a[e+4>>0]|0,h=H&255,n=h>>>5,c[d+8>>2]=n,(H&255)<=191):0)?(H=(h&15)+8|0,a[d+13>>0]=H,H>>>0<=14):0){o=a[e+5>>0]|0;z=o&255;p=z>>>4;c[d+24>>2]=p;w=z&8;i=z>>>2&1;a[d+16>>0]=z>>>1&1;G=d+17|0;a[G>>0]=z&1;z=d+18|0;b[z>>1]=0;H=d+20|0;b[H>>1]=0;B=d+22|0;b[B>>1]=0;j=d+12|0;a[j>>0]=0;k=d+14|0;a[k>>0]=0;m=d+15|0;a[m>>0]=0;if(!(h&16))if(!i)h=0;else{a[j>>0]=1;a[k>>0]=1;h=1}else{a[j>>0]=1;a[m>>0]=i;h=0}if(((((((o&255)<=79?(p|0)==0&h<<24>>24==0|(n|0)!=0:0)?(q=mf(d,e+6|0,f+-6|0)|0,(q|0)>=0):0)?(r=q+6|0,s=d+4|0,t=mf(s,e+r|0,f-r|0)|0,(t|0)>=0):0)?(u=t+r|0,(c[d>>2]|0)!=0):0)?(c[s>>2]|0)!=0:0)?(I=d+28|0,v=mf(I,e+u|0,f-u|0)|0,(v|0)>=0):0){h=v+u|0;c[x>>2]=0;b:do if(!w){c[d+32>>2]=0;y=43}else{i=mf(x,e+h|0,f-h|0)|0;if((i|0)<0){h=-1;break a}h=i+h|0;i=d+32|0;c[i>>2]=0;r=(c[x>>2]|0)+h|0;if((r|0)>(f|0)){h=-1;break a}q=(g|0)!=0;if(!q?(a[G>>0]|0)==0:0){h=r;break}if((r|0)<=(h|0)){y=43;break}while(1){j=nf(A,e+h|0,r-h|0)|0;if((j|0)<0){h=-1;break a}h=j+h|0;j=mf(C,e+h|0,r-h|0)|0;if((j|0)<0){h=-1;break a}n=j+h|0;o=c[C>>2]|0;h=o+n|0;if(h>>>0>r>>>0){h=-1;break a}p=c[A>>2]|0;if((a[G>>0]|0)!=0&(p|0)==5){j=mf(D,e+n|0,r-n|0)|0;if((j|0)<0)break;j=j+n|0;k=mf(E,e+j|0,r-j|0)|0;if((k|0)<0)break;y=k+j|0;if((mf(F,e+y|0,r-y|0)|0)<0)break;j=c[E>>2]|0;k=c[F>>2]|0;if((j|0)==0|(k|0)==0)break;if((j&65535|0)!=(j|0))break;if((k&65535|0)!=(k|0))break;m=c[D>>2]|0;if((m&65535|0)!=(m|0))break;b[z>>1]=m;b[H>>1]=j;b[B>>1]=k}if(q){x=Yd(16)|0;c[x>>2]=p;g=x+4|0;c[g>>2]=o;y=x+12|0;c[y>>2]=0;c[i>>2]=x;i=Yd(o)|0;c[x+8>>2]=i;Pf(i|0,e+n|0,c[g>>2]|0)|0;i=y}if((r|0)<=(h|0)){y=43;break b}}h=-1;break a}while(0);if((y|0)==43)if((a[G>>0]|0)!=0?(b[H>>1]|0)==0:0){h=-1;break}if(!(c[I>>2]|0))c[I>>2]=f-h}else h=-1}else h=-1;while(0);l=J;return h|0}function bf(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0;o=l;l=l+32|0;k=o+12|0;m=o;df(k);df(m);if(i){i=ef(k,a+12|0,a+4|0,b,d,e,f,0,h)|0;if((i|0)<0)i=-1;else{j=b+i|0;b=d-i|0;n=4}}else{j=b;b=d;n=4}if((n|0)==4){i=ef(m,a+8|0,a,j,b,e,f,g,h)|0;if((i|0)<0)i=-1;else{n=b-i|0;i=ff(a,k,m,j+i|0,n)|0;ae(c[k>>2]|0);ae(c[m>>2]|0);i=(i|0)<0?-1:d-n+i|0}}l=o;return i|0}function cf(a){a=a|0;var b=0,d=0;b=a+4|0;d=c[b>>2]|0;if(d|0){wd(d)|0;ae(c[b>>2]|0);c[b>>2]=0}b=c[a>>2]|0;if(b|0){wd(b)|0;ae(c[a>>2]|0);c[a>>2]=0}return}function df(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return}function ef(a,b,d,e,f,g,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+16|0;p=q+8|0;k=q+4|0;m=q;e=kf(k,m,e,f,g,h,i,j)|0;do if((((e|0)>=0?(k=c[k>>2]|0,m=lf(a,k,c[m>>2]|0)|0,ae(k),(m|0)>=0):0)?(n=Bd(64)|0,(n|0)!=0):0)?(m=ue()|0,c[p>>2]=m,o=m,(m|0)!=0):0){m=n+688|0;c[m>>2]=c[m>>2]|1;if((vd(n,64,0)|0)<0){we(p);e=-1;break}else{c[d>>2]=n;c[b>>2]=o;break}}else e=-1;while(0);l=q;return e|0}function ff(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=l;l=l+16|0;u=y;x=b+4|0;i=c[x>>2]|0;v=(i|0)!=0;c[u>>2]=0;c[u+4>>2]=0;a:do if((h|0)>0){s=u+((v&1)<<2)|0;m=1;i=h;while(1){if((i|0)<((m?5:2)|0)){i=-1;break a}if(m)k=0;else k=(a[g+2>>0]|0)==0?4:3;if((i|0)<(k+3|0)){i=-1;break a}q=g+k|0;r=d[q>>0]|0;n=r<<5&32|(d[g+(k+1)>>0]|0)>>>3;r=r>>>1;j=r&63;if(j>>>0>40|((r&60|0)==32|(j|0)==39)){if(c[u>>2]|0?c[s>>2]|0:0)break}else if((j>>>0<10|(j+-16|0)>>>0<6?(t=k+2|0,(t|0)<(i|0)):0)?(a[g+t>>0]|0)<0:0){if(c[u>>2]|0?c[s>>2]|0:0)break;c[u+((v&(n|0)==1&1)<<2)>>2]=1}r=gf(g,i,(m^1)&1)|0;if((r|0)<0){i=-1;break a}o=r-k|0;p=o+3|0;m=v&(n|0)==1;j=m?e:f;k=j+8|0;if((hf(j,(c[k>>2]|0)+p|0)|0)<0){i=-1;break a}j=(c[j>>2]|0)+(c[k>>2]|0)|0;a[j>>0]=0;a[j+1>>0]=0;a[j+2>>0]=1;Pf(j+3|0,q|0,o|0)|0;if(m){q=j+4|0;a[q>>0]=a[q>>0]&7}c[k>>2]=(c[k>>2]|0)+p;i=i-r|0;if((i|0)>0){m=0;g=g+r|0}else break}g=i;i=c[x>>2]|0;w=22}else{g=h;w=22}while(0);do if((w|0)==22){if(i|0){i=e+8|0;if((hf(e,(c[i>>2]|0)+32|0)|0)<0){i=-1;break}if((jf(c[x>>2]|0,c[b+12>>2]|0,c[e>>2]|0,c[i>>2]|0)|0)<0){i=-1;break}}i=f+8|0;if((hf(f,(c[i>>2]|0)+32|0)|0)<0)i=-1;else{i=(jf(c[b>>2]|0,c[b+8>>2]|0,c[f>>2]|0,c[i>>2]|0)|0)<0;i=i?-1:h-g|0}}while(0);l=y;return i|0}function gf(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;do if(d){if((c|0)>3){if(a[b>>0]|0){d=-1;break}if(((a[b+1>>0]|0)==0?(a[b+2>>0]|0)==0:0)?(a[b+3>>0]|0)==1:0){d=4;e=11;break}}else{if((c|0)!=3){d=-1;break}if(a[b>>0]|0){d=-1;break}}if((a[b+1>>0]|0)==0?(a[b+2>>0]|0)==1:0){d=3;e=11}else d=-1}else{d=0;e=11}while(0);a:do if((e|0)==11){e=d+2|0;if((e|0)<=(c|0))if((e|0)<(c|0)){h=d;while(1){d=h;h=h+1|0;if(!(a[b+d>>0]|0)){f=(a[b+h>>0]|0)==0;if(f?(a[b+e>>0]|0)==1:0)break a;g=d+3|0;if((!((g|0)>=(c|0)|f^1)?(a[b+e>>0]|0)==0:0)?(a[b+g>>0]|0)==1:0)break a;else d=g}else d=d+3|0;if((d|0)>=(c|0)){d=c;break}else e=d}}else d=c;else d=-1}while(0);return d|0}function hf(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+4|0;d=c[e>>2]|0;if((d|0)<(b|0)){d=(d*3|0)/2|0;b=(d|0)<(b|0)?b:d;d=Zd(c[a>>2]|0,b)|0;if(!d)b=-1;else{c[a>>2]=d;c[e>>2]=b;b=0}}else b=0;return b|0}function jf(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;i=l;l=l+96|0;g=i;h=i+80|0;Ld(g);c[g+24>>2]=e;c[g+28>>2]=f;e=e+f|0;f=e+32|0;do{a[e>>0]=0;e=e+1|0}while((e|0)<(f|0));g=Cd(b,d,h,g)|0;l=i;return ((g|0)<0|(c[h>>2]|0)==0)<<31>>31|0}function kf(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+16|0;k=q;c[b>>2]=0;p=mf(k,e,f)|0;if((p|0)>=0?(o=c[k>>2]|0,o>>>0<=(f-p|0)>>>0):0){m=o+10|0;n=Yd(m)|0;i=i&255;a[n>>0]=i;a[n+1>>0]=g>>>24;a[n+2>>0]=g>>>16;a[n+3>>0]=g>>>8;a[n+4>>0]=g;a[n+5>>0]=h>>>24;a[n+6>>0]=h>>>16;a[n+7>>0]=h>>>8;a[n+8>>0]=h;a[n+9>>0]=j+248;Pf(n+10|0,e+p|0,o|0)|0;g=Yd((m<<1)+6|0)|0;a[g>>0]=0;a[g+1>>0]=0;a[g+2>>0]=0;a[g+3>>0]=1;a[g+4>>0]=96;a[g+5>>0]=1;if((m|0)>0){e=0;f=6;while(1){k=e+1|0;if((k|0)<(m|0)&i<<24>>24==0?(a[n+k>>0]|0)==0:0){a[g+f>>0]=0;a[g+(f+1)>>0]=0;a[g+(f+2)>>0]=3;k=e+2|0;f=f+3|0}else{a[g+f>>0]=i;f=f+1|0}if((k|0)>=(m|0))break;e=k;i=a[n+k>>0]|0}if(!f){f=0;k=12}else k=11}else{f=6;k=11}if((k|0)==11)if(!(a[g+(f+-1)>>0]|0))k=12;if((k|0)==12){a[g+f>>0]=-128;f=f+1|0}ae(n);c[d>>2]=f;c[b>>2]=g;f=p+o|0}else f=-1;l=q;return f|0}function lf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=a+8|0;if((hf(a,(c[e>>2]|0)+d|0)|0)<0)a=-1;else{Pf((c[a>>2]|0)+(c[e>>2]|0)|0,b|0,d|0)|0;c[e>>2]=(c[e>>2]|0)+d;a=0}return a|0}function mf(a,b,d){a=a|0;b=b|0;d=d|0;b=nf(a,b,d)|0;if((b|0)>=0)b=(c[a>>2]|0)>>>0>1073741823?-1:b;return b|0}function nf(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0;a:do if((f|0)>=1){g=a[e>>0]|0;h=g&255;if(g<<24>>24>-1){c[b>>2]=h;f=1;break}if(g<<24>>24!=-128){g=h&127;h=e+1|0;while(1){if((f|0)<2){f=-1;break a}i=h;h=h+1|0;i=d[i>>0]|0;g=i&127|g<<7;if(!(i&128))break;else f=f+-1|0}c[b>>2]=g;f=h-e|0}else f=-1}else f=-1;while(0);return f|0}function of(a){a=a|0;pf(a);ae(c[a+56>>2]|0);cf(a);we(a+8|0);we(a+12|0);ae(a);return}function pf(a){a=a|0;var b=0;ae(c[a+124>>2]|0);ae(c[a+128>>2]|0);b=0;do{ae(c[a+132+(b<<2)>>2]|0);ae(c[a+164+(b<<2)>>2]|0);b=b+1|0}while((b|0)!=8);ae(c[a+196>>2]|0);return}function qf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:do if((a+-1|0)>>>0>2147483582)b=0;else{b=c[909]|0;if(!b){b=If(64)|0;if((b|0)==(-1|0)){b=0;break}c[910]=If(0)|0;c[909]=3632;c[908]=3632;c[912]=3644;c[911]=3644;i=b+16|0;rf(i,170);sf(i,3644);sf(b+24|0,3632);b=c[909]|0}i=tf(a)|0;g=b+-8|0;a=uf(g)|0;b:do if(i>>>0>>0){e=g;d=g;a=g;j=10}else{h=c[908]|0;e=a;a=g;f=g;d=g;while(1){if((b|0)==(h|0))break;if((i|0)==(e|0)){j=13;break}b=c[b+4>>2]|0;g=b+-8|0;a=uf(g)|0;if(i>>>0>>0){e=g;d=g;a=g;j=10;break b}else{e=a;a=g;f=g;d=g}}if((j|0)==13){vf(b);break}if((If(i+32-e|0)|0)==(-1|0)){b=0;break a}c[910]=If(0)|0;b=h;e=f;j=10}while(0);if((j|0)==10){j=e+i|0;sf(j,d);sf(j+8|0,b);rf(j,170);vf(b)}rf(a,85)}while(0);return b|0}function rf(b,c){b=b|0;c=c|0;a[b+-1>>0]=c;return}function sf(a,b){a=a|0;b=b|0;var d=0,e=0;e=b+4|0;d=c[e>>2]|0;c[e>>2]=a;c[a>>2]=b;c[a+4>>2]=d;c[d>>2]=a;return}function tf(a){a=a|0;return a+40&-32|0}function uf(a){a=a|0;var b=0;b=c[a+4>>2]|0;return ((b|0)==3644?c[910]|0:b)-a|0}function vf(a){a=a|0;var b=0;b=c[a>>2]|0;a=c[a+4>>2]|0;c[b+4>>2]=a;c[a>>2]=b;return}function wf(a){a=a|0;var b=0,d=0;if(a|0){b=a+-8|0;sf(a,3632);rf(b,170);d=c[b>>2]|0;if((d|0)!=3644?(xf(d)|0)==170:0){vf(b);vf(a);b=d}a=c[b+4>>2]|0;if((a|0)!=3644?(xf(a)|0)==170:0){vf(a);b=b+8|0;vf(b);d=a+8|0;sf(b,d);vf(d)}}return}function xf(a){a=a|0;return d[a+-1>>0]|0|0}function yf(a,b){a=a|0;b=b|0;var d=0,e=0;do if(a){if(!b){wf(a);d=0;break}d=qf(b)|0;if(!d)d=0;else{e=(c[a+-4>>2]|0)-a+-1|0;Pf(d|0,a|0,(e>>>0>b>>>0?b:e)|0)|0;wf(a)}}else d=qf(b)|0;while(0);return d|0}function zf(){return 3652}function Af(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do if(!d)b=0;else{while(1){e=a[b>>0]|0;f=a[c>>0]|0;if(e<<24>>24!=f<<24>>24)break;d=d+-1|0;if(!d){b=0;break a}else{b=b+1|0;c=c+1|0}}b=(e&255)-(f&255)|0}while(0);return b|0}function Bf(a){a=a|0;return 0}function Cf(a){a=a|0;return 0}function Df(a){a=+a;var b=0;b=Cf(32)|0;a=+Ef(a);return ~~a|0}function Ef(a){a=+a;var b=0,d=0;h[j>>3]=a;b=c[j+4>>2]|0;d=b&2146435072;if(!(d>>>0>1126170624|(d|0)==1126170624&0>0)){b=(b|0)<0;a=(b?4503599627370496.0:-4503599627370496.0)+((b?-4503599627370496.0:4503599627370496.0)+a);if(a==0.0)a=b?-0.0:0.0}return +a}function Ff(){}function Gf(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>c;return a>>>c|(b&(1<>c-32|0}function Hf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (C=d,a-c>>>0|0)|0}function If(a){a=a|0;var b=0,d=0;d=a+15&-16|0;b=c[i>>2]|0;a=b+d|0;if((d|0)>0&(a|0)<(b|0)|(a|0)<0){Z()|0;ma(12);return -1}c[i>>2]=a;if((a|0)>(Y()|0)?(X()|0)==0:0){ma(12);c[i>>2]=b;return -1}return b|0}function Jf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (C=b+d+(c>>>0>>0|0)>>>0,c|0)|0}function Kf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=b+e|0;d=d&255;if((e|0)>=67){while(b&3){a[b>>0]=d;b=b+1|0}f=h&-4|0;g=f-64|0;i=d|d<<8|d<<16|d<<24;while((b|0)<=(g|0)){c[b>>2]=i;c[b+4>>2]=i;c[b+8>>2]=i;c[b+12>>2]=i;c[b+16>>2]=i;c[b+20>>2]=i;c[b+24>>2]=i;c[b+28>>2]=i;c[b+32>>2]=i;c[b+36>>2]=i;c[b+40>>2]=i;c[b+44>>2]=i;c[b+48>>2]=i;c[b+52>>2]=i;c[b+56>>2]=i;c[b+60>>2]=i;b=b+64|0}while((b|0)<(f|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}return h-e|0}function Lf(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b<>>32-c;return a<>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function Nf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=R(e,f)|0;d=a>>>16;a=(c>>>16)+(R(e,d)|0)|0;e=b>>>16;b=R(e,f)|0;return (C=(a>>>16)+(R(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function Of(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=Nf(e,f)|0;a=C;return (C=(R(b,f)|0)+(R(d,e)|0)+a|a&0,c|0|0)|0}function Pf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192)return na(b|0,d|0,e|0)|0;h=b|0;g=b+e|0;if((b&3)==(d&3)){while(b&3){if(!e)return h|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}e=g&-4|0;f=e-64|0;while((b|0)<=(f|0)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];c[b+32>>2]=c[d+32>>2];c[b+36>>2]=c[d+36>>2];c[b+40>>2]=c[d+40>>2];c[b+44>>2]=c[d+44>>2];c[b+48>>2]=c[d+48>>2];c[b+52>>2]=c[d+52>>2];c[b+56>>2]=c[d+56>>2];c[b+60>>2]=c[d+60>>2];b=b+64|0;d=d+64|0}while((b|0)<(e|0)){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}}else{e=g-4|0;while((b|0)<(e|0)){a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;b=b+4|0;d=d+4|0}}while((b|0)<(g|0)){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}return h|0}function Qf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return qa[a&1](b|0,c|0,d|0)|0}function Rf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ra[a&3](b|0,c|0,d|0,e|0,f|0)}function Sf(a,b){a=a|0;b=b|0;sa[a&7](b|0)}function Tf(a,b,c){a=a|0;b=b|0;c=c|0;ta[a&7](b|0,c|0)}function Uf(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return ua[a&1](b|0,c|0,d|0,e|0,f|0,g|0)|0}function Vf(a,b,c,d,e,f,g,h,i,j,k,l,m){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;va[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0,l|0,m|0)}function Wf(a,b){a=a|0;b=b|0;return wa[a&3](b|0)|0}function Xf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;xa[a&7](b|0,c|0,d|0)}function Yf(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;ya[a&1](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0)}function Zf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return za[a&1](b|0,c|0,d|0,e|0)|0}function _f(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Aa[a&3](b|0,c|0,d|0,e|0,f|0,g|0)}function $f(a,b,c){a=a|0;b=b|0;c=c|0;return Ba[a&1](b|0,c|0)|0}function ag(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Ca[a&1](b|0,c|0,d|0,e|0,f|0)|0}function bg(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;Da[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0)}function cg(a,b,c){a=a|0;b=b|0;c=c|0;V(0);return 0}function dg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;V(1)}function eg(a){a=a|0;V(2)}function fg(a,b){a=a|0;b=b|0;V(3)}function gg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;V(4);return 0}function hg(a,b,c,d,e,f,g,h,i,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;V(5)}function ig(a){a=a|0;V(6);return 0}function jg(a,b,c){a=a|0;b=b|0;c=c|0;V(7)}function kg(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;V(8)}function lg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;V(9);return 0}function mg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;V(10)}function ng(a,b){a=a|0;b=b|0;V(11);return 0}function og(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;V(12);return 0}function pg(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;V(13)} + +// EMSCRIPTEN_END_FUNCS +var qa=[cg,zd];var ra=[dg,$c,ad,dg];var sa=[eg,Rb,Nc,Sc,Tc,Uc,Vc,eg];var ta=[fg,Lc,Oc,Pc,Qc,Rc,kd,ke];var ua=[gg,xd];var va=[hg,Xc,Yc,hg];var wa=[ig,Ob,Qb,ig];var xa=[jg,Hc,Ic,Jc,Kc,Mc,jg,jg];var ya=[kg,Wc];var za=[lg,Pb];var Aa=[mg,Gc,Zc,_c];var Ba=[ng,$b];var Ca=[og,yd];var Da=[pg,Ie,Je,Ke,Ge,pg,pg,pg];return{___muldsi3:Nf,_sbrk:If,_i64Subtract:Hf,_free:wf,_bpg_decoder_decode:$e,_bpg_decoder_start:De,_i64Add:Jf,_bpg_decoder_open:_e,_bitshift64Ashr:Gf,_memset:Kf,_bpg_decoder_get_info:Ce,_malloc:qf,_emscripten_get_global_libc:zf,_memcpy:Pf,_bpg_decoder_get_line:Me,_bpg_decoder_close:of,_bpg_decoder_get_frame_duration:Le,___muldi3:Of,_llvm_bswap_i32:Mf,_bitshift64Shl:Lf,runPostSets:Ff,stackAlloc:Ea,stackSave:Fa,stackRestore:Ga,establishStackSpace:Ha,setTempRet0:Ja,getTempRet0:Ka,setThrew:Ia,stackAlloc:Ea,stackSave:Fa,stackRestore:Ga,establishStackSpace:Ha,setThrew:Ia,setTempRet0:Ja,getTempRet0:Ka,dynCall_iiii:Qf,dynCall_viiiii:Rf,dynCall_vi:Sf,dynCall_vii:Tf,dynCall_iiiiiii:Uf,dynCall_viiiiiiiiiiii:Vf,dynCall_ii:Wf,dynCall_viii:Xf,dynCall_viiiiiiiii:Yf,dynCall_iiiii:Zf,dynCall_viiiiii:_f,dynCall_iii:$f,dynCall_iiiiii:ag,dynCall_viiiiiii:bg}}) + + +// EMSCRIPTEN_END_ASM +(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var _bpg_decoder_decode=Module["_bpg_decoder_decode"]=asm["_bpg_decoder_decode"];var _bpg_decoder_start=Module["_bpg_decoder_start"]=asm["_bpg_decoder_start"];var stackSave=Module["stackSave"]=asm["stackSave"];var getTempRet0=Module["getTempRet0"]=asm["getTempRet0"];var setThrew=Module["setThrew"]=asm["setThrew"];var _bpg_decoder_get_line=Module["_bpg_decoder_get_line"]=asm["_bpg_decoder_get_line"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _bitshift64Ashr=Module["_bitshift64Ashr"]=asm["_bitshift64Ashr"];var _memset=Module["_memset"]=asm["_memset"];var _bpg_decoder_get_info=Module["_bpg_decoder_get_info"]=asm["_bpg_decoder_get_info"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var setTempRet0=Module["setTempRet0"]=asm["setTempRet0"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=asm["_emscripten_get_global_libc"];var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=asm["_llvm_bswap_i32"];var ___muldsi3=Module["___muldsi3"]=asm["___muldsi3"];var _free=Module["_free"]=asm["_free"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var _bpg_decoder_open=Module["_bpg_decoder_open"]=asm["_bpg_decoder_open"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var _bpg_decoder_close=Module["_bpg_decoder_close"]=asm["_bpg_decoder_close"];var _malloc=Module["_malloc"]=asm["_malloc"];var _bpg_decoder_get_frame_duration=Module["_bpg_decoder_get_frame_duration"]=asm["_bpg_decoder_get_frame_duration"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=asm["dynCall_iiiiiii"];var dynCall_viiiiiiiiiiii=Module["dynCall_viiiiiiiiiiii"]=asm["dynCall_viiiiiiiiiiii"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_viiiiiiiii=Module["dynCall_viiiiiiiii"]=asm["dynCall_viiiiiiiii"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_iiiiii=Module["dynCall_iiiiii"]=asm["dynCall_iiiiii"];var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=asm["dynCall_viiiiiii"];Runtime.stackAlloc=Module["stackAlloc"];Runtime.stackSave=Module["stackSave"];Runtime.stackRestore=Module["stackRestore"];Runtime.establishStackSpace=Module["establishStackSpace"];Runtime.setTempRet0=Module["setTempRet0"];Runtime.getTempRet0=Module["getTempRet0"];Module["asm"]=asm;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["exit"](status)}Module["quit"](status,new ExitStatus(status))}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}run();window["BPGDecoder"]=(function(ctx){this.ctx=ctx;this["imageData"]=null;this["onload"]=null;this["frames"]=null;this["loop_count"]=0});window["BPGDecoder"].prototype={malloc:Module["cwrap"]("malloc","number",["number"]),free:Module["cwrap"]("free","void",["number"]),bpg_decoder_open:Module["cwrap"]("bpg_decoder_open","number",[]),bpg_decoder_decode:Module["cwrap"]("bpg_decoder_decode","number",["number","array","number"]),bpg_decoder_get_info:Module["cwrap"]("bpg_decoder_get_info","number",["number","number"]),bpg_decoder_start:Module["cwrap"]("bpg_decoder_start","number",["number","number"]),bpg_decoder_get_frame_duration:Module["cwrap"]("bpg_decoder_get_frame_duration","void",["number","number","number"]),bpg_decoder_get_line:Module["cwrap"]("bpg_decoder_get_line","number",["number","number"]),bpg_decoder_close:Module["cwrap"]("bpg_decoder_close","void",["number"]),load:(function(url){var request=new XMLHttpRequest;var this1=this;request.open("get",url,true);request.responseType="arraybuffer";request.onload=(function(event){this1._onload(request,event)});request.send()}),_onload:(function(request,event){var data=request.response;var array=new Uint8Array(data);var img,w,h,img_info_buf,cimg,p0,rgba_line,w4,frame_count;var heap8,heap16,heap32,dst,i,y,duration,frames,loop_count;img=this.bpg_decoder_open();if(this.bpg_decoder_decode(img,array,array.length)<0){console.log("could not decode image");return}img_info_buf=this.malloc(5*4);this.bpg_decoder_get_info(img,img_info_buf);heap8=Module["HEAPU8"];heap16=Module["HEAPU16"];heap32=Module["HEAPU32"];w=heap32[img_info_buf>>2];h=heap32[img_info_buf+4>>2];loop_count=heap16[img_info_buf+16>>1];w4=w*4;rgba_line=this.malloc(w4);frame_count=0;frames=[];for(;;){if(this.bpg_decoder_start(img,1)<0)break;this.bpg_decoder_get_frame_duration(img,img_info_buf,img_info_buf+4);duration=heap32[img_info_buf>>2]*1e3/heap32[img_info_buf+4>>2];cimg=this.ctx.createImageData(w,h);dst=cimg.data;p0=0;for(y=0;y=frames.length){if(dec["loop_count"]==0||dec.loop_counter=0){dec.frame_index=frame_index;ctx.putImageData(frames[frame_index]["img"],0,0);setTimeout(next_frame,frames[frame_index]["duration"])}}canvas.width=imageData.width;canvas.height=imageData.height;ctx.putImageData(imageData,0,0);if(frames.length>1){dec.frame_index=0;dec.loop_counter=0;setTimeout(next_frame,frames[0]["duration"])}}).bind(dec,canvas,ctx);dec.load(url)}})}))() + + + + diff --git a/themes/fractal-forest/static/js/bpgdec8.js.sha384 b/themes/fractal-forest/static/js/bpgdec8.js.sha384 new file mode 100644 index 0000000..895f733 --- /dev/null +++ b/themes/fractal-forest/static/js/bpgdec8.js.sha384 @@ -0,0 +1 @@ +3CqYbTw/dZv6ybsLOIogCZfTfFFvzYJQZfDBWUuXQyunCKxoE4rXbJLZSpjZa9gA diff --git a/themes/fractal-forest/static/js/bpgdec8a.js b/themes/fractal-forest/static/js/bpgdec8a.js new file mode 100644 index 0000000..f15ad08 --- /dev/null +++ b/themes/fractal-forest/static/js/bpgdec8a.js @@ -0,0 +1,17 @@ +((function(){var Module={};var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else{throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER}if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=console.log;if(!Module["printErr"])Module["printErr"]=console.warn;var nodeFS;var nodePath;Module["read"]=function read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=(function(status,toThrow){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return xhr.response}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function printErr(x){console.warn(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}if(!Module["quit"]){Module["quit"]=(function(status,toThrow){throw toThrow})}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var Runtime={setTempRet0:(function(value){tempRet0=value;return value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i>2];var end=(ret+size+15|0)&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=Runtime.stackAlloc(len);stringToUTF8(str,ret,len)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[typeof _malloc==="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function demangle(func){var __cxa_demangle_func=Module["___cxa_demangle"]||Module["__cxa_demangle"];if(__cxa_demangle_func){try{var s=func.substr(1);var len=lengthBytesUTF8(s)+1;var buf=_malloc(len);stringToUTF8(s,buf,len);var status=_malloc(4);var ret=__cxa_demangle_func(buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}return func}Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}Module["stackTrace"]=stackTrace;var HEAP;var buffer;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||33554432;if(TOTAL_MEMORY0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var lastChar,end;if(dontAddNull){end=buffer+lengthBytesUTF8(string);lastChar=HEAP8[end]}stringToUTF8(string,buffer,Infinity);if(dontAddNull)HEAP8[end]=lastChar}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];if(!Math["trunc"])Math["trunc"]=(function(x){return x<0?Math.ceil(x):Math.floor(x)});Math.trunc=Math["trunc"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_round=Math.round;var Math_min=Math.min;var Math_clz32=Math.clz32;var Math_trunc=Math.trunc;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+6272;__ATINIT__.push();allocate([0,0,0,0,0,0,0,0,254,58,10,254,252,54,16,254,250,46,28,252,252,36,36,252,252,28,46,250,254,16,54,252,254,10,58,254,0,0,0,0,255,4,246,58,17,251,1,0,255,4,246,58,17,251,1,0,255,4,245,40,40,245,4,255,255,4,245,40,40,245,4,255,0,1,251,17,58,246,4,255,0,1,251,17,58,246,4,255,29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,33,0,0,0,34,0,0,0,34,0,0,0,35,0,0,0,35,0,0,0,36,0,0,0,36,0,0,0,37,0,0,0,37,0,0,0,246,6,0,0,0,0,0,0,0,0,0,0,53,54,50,72,34,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,1,0,0,0,0,0,0,0,255,255,255,127,0,0,0,0,0,0,0,0,3,1,1,0,36,56,37,56,38,56,0,0,0,0,0,0,4,0,0,0,0,0,0,0,3,1,0,16,36,56,37,56,38,56,0,0,0,0,0,0,5,0,0,0,0,0,0,0,3,0,0,16,36,56,37,56,38,56,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,0,0,0,36,56,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,1,0,0,0,0,240,154,249,114,252,138,253,30,254,122,254,197,254,0,255,197,254,122,254,30,254,138,253,114,252,154,249,0,240,0,0,1,0,1,2,0,1,2,3,1,2,3,2,3,3,0,1,0,2,1,0,3,2,1,0,3,2,1,3,2,3,0,0,1,0,1,2,0,1,2,3,0,1,2,3,4,0,1,2,3,4,5,0,1,2,3,4,5,6,0,1,2,3,4,5,6,7,1,2,3,4,5,6,7,2,3,4,5,6,7,3,4,5,6,7,4,5,6,7,5,6,7,6,7,7,0,1,0,2,1,0,3,2,1,0,4,3,2,1,0,5,4,3,2,1,0,6,5,4,3,2,1,0,7,6,5,4,3,2,1,0,7,6,5,4,3,2,1,7,6,5,4,3,2,7,6,5,4,3,7,6,5,4,7,6,5,7,6,7,40,45,51,57,64,72,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,8,8,8,8,8,8,9,9,9,9,9,9,10,10,10,10,10,10,11,11,11,11,11,11,12,12,0,0,0,2,5,9,1,4,8,12,3,7,11,14,6,10,13,15,0,2,1,3,0,2,5,9,14,20,27,35,1,4,8,13,19,26,34,42,3,7,12,18,25,33,41,48,6,11,17,24,32,40,47,53,10,16,23,31,39,46,52,57,15,22,30,38,45,51,56,60,21,29,37,44,50,55,59,62,28,36,43,49,54,58,61,63,0,1,0,1,0,0,1,1,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,0,1,2,3,16,17,18,19,4,5,6,7,20,21,22,23,8,9,10,11,24,25,26,27,12,13,14,15,28,29,30,31,32,33,34,35,48,49,50,51,36,37,38,39,52,53,54,55,40,41,42,43,56,57,58,59,44,45,46,47,60,61,62,63,0,1,4,5,2,3,4,5,6,6,8,8,7,7,8,8,1,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,2,1,0,0,2,1,0,0,2,1,0,0,2,1,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,153,200,139,141,157,154,154,154,154,154,154,154,154,184,154,154,154,184,63,139,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,153,138,138,111,141,94,138,182,154,139,139,139,139,139,139,110,110,124,125,140,153,125,127,140,109,111,143,127,111,79,108,123,63,110,110,124,125,140,153,125,127,140,109,111,143,127,111,79,108,123,63,91,171,134,141,111,111,125,110,110,94,124,108,124,107,125,141,179,153,125,107,125,141,179,153,125,107,125,141,179,153,125,140,139,182,182,152,136,152,136,153,136,139,111,136,139,111,141,111,140,92,137,138,140,152,138,139,153,74,149,92,139,107,122,152,140,179,166,182,140,227,122,197,138,153,136,167,152,152,154,154,154,154,154,154,154,154,154,154,154,154,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,153,185,107,139,126,154,197,185,201,154,154,154,149,154,139,154,154,154,152,139,110,122,95,79,63,31,31,153,153,153,153,140,198,140,198,168,79,124,138,94,153,111,149,107,167,154,139,139,139,139,139,139,125,110,94,110,95,79,125,111,110,78,110,111,111,95,94,108,123,108,125,110,94,110,95,79,125,111,110,78,110,111,111,95,94,108,123,108,121,140,61,154,155,154,139,153,139,123,123,63,153,166,183,140,136,153,154,166,183,140,136,153,154,166,183,140,136,153,154,170,153,123,123,107,121,107,121,167,151,183,140,151,183,140,140,140,154,196,196,167,154,152,167,182,182,134,149,136,153,121,136,137,169,194,166,167,154,167,137,182,107,167,91,122,107,167,154,154,154,154,154,154,154,154,154,154,154,154,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,153,160,107,139,126,154,197,185,201,154,154,154,134,154,139,154,154,183,152,139,154,137,95,79,63,31,31,153,153,153,153,169,198,169,198,168,79,224,167,122,153,111,149,92,167,154,139,139,139,139,139,139,125,110,124,110,95,94,125,111,111,79,125,126,111,111,79,108,123,93,125,110,124,110,95,94,125,111,111,79,125,126,111,111,79,108,123,93,121,140,61,154,170,154,139,153,139,123,123,63,124,166,183,140,136,153,154,166,183,140,136,153,154,166,183,140,136,153,154,170,153,138,138,122,121,122,121,167,151,183,140,151,183,140,140,140,154,196,167,167,154,152,167,182,182,134,149,136,153,121,136,122,169,208,166,167,154,152,167,182,107,167,91,107,107,167,154,154,154,154,154,154,154,154,154,154,154,154,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,8,9,10,11,12,13,14,15,16,17,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,5,5,6,6,7,8,9,10,11,13,14,16,18,20,22,24,29,30,31,32,33,33,34,34,35,35,36,36,37,37,0,0,0,0,1,0,2,0,3,0,0,0,4,0,0,0,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,104,101,118,99,0,0,26,10,1,0,1,2,2,2,2,3,5,7,8,10,12,13,15,17,18,19,20,21,22,23,23,24,24,25,25,26,27,27,28,28,29,29,30,31,32,26,21,17,13,9,5,2,0,254,251,247,243,239,235,230,224,230,235,239,243,247,251,254,0,2,5,9,13,17,21,26,32,64,90,90,90,89,88,87,85,83,82,80,78,75,73,70,67,64,61,57,54,50,46,43,38,36,31,25,22,18,13,9,4,255,0,1,0,0,255,0,1,255,255,1,1,1,255,255,1,1,2,0,3,4,0,1,1,0,0,2,2,0,1,2,2,1,0,3,3,0,1,3,3,1,2,3,3,2,16,16,16,16,17,18,21,24,16,16,16,16,17,19,22,25,16,16,17,18,20,22,25,29,16,16,18,21,24,27,31,36,17,17,20,24,30,35,41,47,18,19,22,27,35,44,54,65,21,22,25,31,41,54,70,88,24,25,29,36,47,65,88,115,16,16,16,16,17,18,20,24,16,16,16,17,18,20,24,25,16,16,17,18,20,24,25,28,16,17,18,20,24,25,28,33,17,18,20,24,25,28,33,41,18,20,24,25,28,33,41,54,20,24,25,28,33,41,54,71,24,25,28,33,41,54,71,91,128,176,208,240,128,167,197,227,128,158,187,216,123,150,178,205,116,142,169,195,111,135,160,185,105,128,152,175,100,122,144,166,95,116,137,158,90,110,130,150,85,104,123,142,81,99,117,135,77,94,111,128,73,89,105,122,69,85,100,116,66,80,95,110,62,76,90,104,59,72,86,99,56,69,81,94,53,65,77,89,51,62,73,85,48,59,69,80,46,56,66,76,43,53,63,72,41,50,59,69,39,48,56,65,37,45,54,62,35,43,51,59,33,41,48,56,32,39,46,53,30,37,43,50,29,35,41,48,27,33,39,45,26,31,37,43,24,30,35,41,23,28,33,39,22,27,32,37,21,26,30,35,20,24,29,33,19,23,27,31,18,22,26,30,17,21,25,28,16,20,23,27,15,19,22,25,14,18,21,24,14,17,20,23,13,16,19,22,12,15,18,21,12,14,17,20,11,14,16,19,11,13,15,18,10,12,15,17,10,12,14,16,9,11,13,15,9,11,12,14,8,10,12,14,8,9,11,13,7,9,11,12,7,9,10,12,7,8,10,11,6,8,9,11,6,7,9,10,6,7,8,9,2,2,2,2,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,62,63,0,0,1,2,2,4,4,5,6,7,8,9,9,11,11,12,13,13,15,15,16,16,18,18,19,19,21,21,22,22,23,24,24,25,26,26,27,27,28,29,29,30,30,30,31,32,32,33,33,33,34,34,35,35,35,36,36,36,37,37,37,38,38,63,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,0,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;STATICTOP+=16;Module["_bitshift64Ashr"]=_bitshift64Ashr;Module["_i64Subtract"]=_i64Subtract;function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}Module["_sbrk"]=_sbrk;Module["_i64Add"]=_i64Add;Module["_memset"]=_memset;Module["_bitshift64Shl"]=_bitshift64Shl;function _abort(){Module["abort"]()}Module["_llvm_bswap_i32"]=_llvm_bswap_i32;Module["___muldsi3"]=___muldsi3;Module["___muldi3"]=___muldi3;function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;DYNAMICTOP_PTR=allocate(1,"i32",ALLOC_STATIC);STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;function invoke_iiii(index,a1,a2,a3){try{return Module["dynCall_iiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){try{Module["dynCall_viiiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){try{Module["dynCall_viiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){try{Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vi(index,a1){try{Module["dynCall_vi"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vii(index,a1,a2){try{Module["dynCall_vii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){try{return Module["dynCall_iiiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){try{Module["dynCall_viiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){try{Module["dynCall_viiiiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_ii(index,a1){try{return Module["dynCall_ii"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viii(index,a1,a2,a3){try{Module["dynCall_viii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){try{Module["dynCall_viiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){try{return Module["dynCall_iiiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iii(index,a1,a2){try{return Module["dynCall_iii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){try{return Module["dynCall_iiiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){try{Module["dynCall_viiiiiii"](index,a1,a2,a3,a4,a5,a6,a7)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity};Module.asmLibraryArg={"abort":abort,"assert":assert,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"invoke_iiii":invoke_iiii,"invoke_viiiiiiiiiii":invoke_viiiiiiiiiii,"invoke_viiiiiiiiii":invoke_viiiiiiiiii,"invoke_viiiii":invoke_viiiii,"invoke_vi":invoke_vi,"invoke_vii":invoke_vii,"invoke_iiiiiii":invoke_iiiiiii,"invoke_viiiiiiiii":invoke_viiiiiiiii,"invoke_viiiiiiiiiiii":invoke_viiiiiiiiiiii,"invoke_ii":invoke_ii,"invoke_viii":invoke_viii,"invoke_viiiiiiii":invoke_viiiiiiii,"invoke_iiiii":invoke_iiiii,"invoke_viiiiii":invoke_viiiiii,"invoke_iii":invoke_iii,"invoke_iiiiii":invoke_iiiiii,"invoke_viiiiiii":invoke_viiiiiii,"___setErrNo":___setErrNo,"_emscripten_memcpy_big":_emscripten_memcpy_big,"_abort":_abort,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX};// EMSCRIPTEN_START_ASM +var asm=(function(global,env,buffer) { +"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.DYNAMICTOP_PTR|0;var j=env.tempDoublePtr|0;var k=env.ABORT|0;var l=env.STACKTOP|0;var m=env.STACK_MAX|0;var n=0;var o=0;var p=0;var q=0;var r=global.NaN,s=global.Infinity;var t=0,u=0,v=0,w=0,x=0.0,y=0,z=0,A=0,B=0.0;var C=0;var D=global.Math.floor;var E=global.Math.abs;var F=global.Math.sqrt;var G=global.Math.pow;var H=global.Math.cos;var I=global.Math.sin;var J=global.Math.tan;var K=global.Math.acos;var L=global.Math.asin;var M=global.Math.atan;var N=global.Math.atan2;var O=global.Math.exp;var P=global.Math.log;var Q=global.Math.ceil;var R=global.Math.imul;var S=global.Math.min;var T=global.Math.max;var U=global.Math.clz32;var V=env.abort;var W=env.assert;var X=env.enlargeMemory;var Y=env.getTotalMemory;var Z=env.abortOnCannotGrowMemory;var _=env.invoke_iiii;var $=env.invoke_viiiiiiiiiii;var aa=env.invoke_viiiiiiiiii;var ba=env.invoke_viiiii;var ca=env.invoke_vi;var da=env.invoke_vii;var ea=env.invoke_iiiiiii;var fa=env.invoke_viiiiiiiii;var ga=env.invoke_viiiiiiiiiiii;var ha=env.invoke_ii;var ia=env.invoke_viii;var ja=env.invoke_viiiiiiii;var ka=env.invoke_iiiii;var la=env.invoke_viiiiii;var ma=env.invoke_iii;var na=env.invoke_iiiiii;var oa=env.invoke_viiiiiii;var pa=env.___setErrNo;var qa=env._emscripten_memcpy_big;var ra=env._abort;var sa=0.0; +// EMSCRIPTEN_START_FUNCS +function Ka(a){a=a|0;var b=0;b=l;l=l+a|0;l=l+15&-16;return b|0}function La(){return l|0}function Ma(a){a=a|0;l=a}function Na(a,b){a=a|0;b=b|0;l=a;m=b}function Oa(a,b){a=a|0;b=b|0;if(!n){n=a;o=b}}function Pa(a){a=a|0;C=a}function Qa(){return C|0}function Ra(b,d){b=b|0;d=d|0;var e=0;do if(a[(c[b+204>>2]|0)+43>>0]|0){e=c[(c[b+200>>2]|0)+13128>>2]|0;d=(d|0)%(e|0)|0;if((d|0)!=2?!((e|0)==2&(d|0)==0):0)break;fh(c[b+152>>2]|0,c[b+136>>2]|0,199)|0}while(0);return}function Sa(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=b+204|0;e=c[g>>2]|0;do if((c[(c[e+1668>>2]|0)+(c[b+3488>>2]<<2)>>2]|0)==(d|0)){Ta(b);e=b+2437|0;if(a[e>>0]|0){f=c[g>>2]|0;if(a[f+42>>0]|0?(f=c[f+1676>>2]|0,(c[f+(d<<2)>>2]|0)!=(c[f+(d+-1<<2)>>2]|0)):0)i=5}else i=5;if((i|0)==5)Ua(b);if(((a[b+2436>>0]|0)==0?a[(c[g>>2]|0)+43>>0]|0:0)?(h=c[(c[b+200>>2]|0)+13128>>2]|0,((d|0)%(h|0)|0|0)==0):0){if((h|0)==1){Ua(b);break}if((a[e>>0]|0)==1)Va(b)}}else{if((a[e+42>>0]|0)!=0?(i=c[e+1676>>2]|0,(c[i+(d<<2)>>2]|0)!=(c[i+(d+-1<<2)>>2]|0)):0){if((a[b+141>>0]|0)==1)Wa(c[b+136>>2]|0);else Ta(b);Ua(b);e=c[g>>2]|0}if(a[e+43>>0]|0?(f=b+200|0,((d|0)%(c[(c[f>>2]|0)+13128>>2]|0)|0|0)==0):0){e=b+136|0;Xa((c[e>>2]|0)+224|0)|0;if((a[b+141>>0]|0)==1)Wa(c[e>>2]|0);else Ta(b);if((c[(c[f>>2]|0)+13128>>2]|0)==1){Ua(b);break}else{Va(b);break}}}while(0);return}function Ta(a){a=a|0;var b=0,d=0;d=a+136|0;a=(c[d>>2]|0)+204|0;Ve(a,1);Jb(a);d=(c[d>>2]|0)+224|0;b=c[a>>2]|0;b=b+((Kb(a)|0)/8|0)|0;Qe(d,b,((Lb(a)|0)+7|0)/8|0);return}function Ua(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;g=c[b+2428>>2]|0;e=2-g|0;e=(g|0)==2|(a[b+3048>>0]|0)==0?e:e^3;g=b+3100|0;f=b+136|0;b=0;do{h=d[1e3+(e*199|0)+b>>0]|0;j=a[g>>0]|0;i=j<<24>>24;h=((h<<3&120)+-16+((R(j<<24>>24<0?0:(i|0)<51?i:51,((h>>>4)*5|0)+-45|0)|0)>>4)<<1)+-127|0;h=h>>31^h;a[(c[f>>2]|0)+b>>0]=(h|0)>124?h&1|124:h;b=b+1|0}while((b|0)!=199);b=0;do{a[(c[f>>2]|0)+199+b>>0]=0;b=b+1|0}while((b|0)!=4);return}function Va(a){a=a|0;fh(c[a+136>>2]|0,c[a+152>>2]|0,199)|0;return}function Wa(a){a=a|0;Mb(a+224|0);return}function Xa(a){a=a|0;var b=0,d=0;d=a+4|0;b=(c[d>>2]|0)+-2|0;c[d>>2]=b;if((c[a>>2]|0)<(b<<17|0)){Nb(a);a=0}else a=(c[a+16>>2]|0)-(c[a+12>>2]|0)|0;return a|0}function Ya(a){a=a|0;a=c[a+136>>2]|0;return Za(a+224|0,a)|0}function Za(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=d[e>>0]|0;g=b+4|0;i=c[g>>2]|0;j=d[5429+((i<<1&384)+f)>>0]|0;i=i-j|0;k=i<<17;l=c[b>>2]|0;h=k-l>>31;c[b>>2]=l-(h&k);c[g>>2]=(h&j-i)+i;f=h^f;a[e>>0]=a[6069+f>>0]|0;h=c[g>>2]|0;e=d[4917+h>>0]|0;c[g>>2]=h<>2]<>2]=e;if(!(e&65535))Pb(b);return f&1|0}function _a(a){a=a|0;var b=0;a=a+136|0;b=c[a>>2]|0;if(!(Za(b+224|0,b+1|0)|0))a=0;else{a=($a((c[a>>2]|0)+224|0)|0)==0;a=a?1:2}return a|0}function $a(a){a=a|0;var b=0,d=0;b=c[a>>2]<<1;c[a>>2]=b;if(!(b&65534)){Ob(a);b=c[a>>2]|0}d=c[a+4>>2]<<17;if((b|0)<(d|0))b=0;else{c[a>>2]=b-d;b=1}return b|0}function ab(a){a=a|0;var b=0,d=0;d=a+136|0;a=0;b=$a((c[d>>2]|0)+224|0)|0;do{b=$a((c[d>>2]|0)+224|0)|0|b<<1;a=a+1|0}while((a|0)!=4);return b|0}function bb(a){a=a|0;var b=0,d=0;d=c[(c[a+200>>2]|0)+52>>2]|0;d=(d|0)>10?31:(1<0){a=0;do{if(!($a((c[b>>2]|0)+224|0)|0))break a;a=a+1|0}while((a|0)<(d|0))}else a=0;while(0);return a|0}function cb(a){a=a|0;return $a((c[a+136>>2]|0)+224|0)|0}function db(a){a=a|0;var b=0;b=a+136|0;a=($a((c[b>>2]|0)+224|0)|0)<<1;return $a((c[b>>2]|0)+224|0)|0|a|0}function eb(a){a=a|0;return Xa((c[a+136>>2]|0)+224|0)|0}function fb(a){a=a|0;a=c[a+136>>2]|0;return Za(a+224|0,a+5|0)|0}function gb(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=c[b+200>>2]|0;i=c[h+13140>>2]|0;h=(1<>2])+-1|0;j=c[b+136>>2]|0;if((a[j+308>>0]|0)!=0|(h&d|0)!=0)d=(a[(c[b+7584>>2]|0)+(f+-1+(R(i,g)|0))>>0]|0)!=0&1;else d=0;if((h&e|0)!=0|(a[j+309>>0]|0)!=0)d=((a[(c[b+7584>>2]|0)+((R(i,g+-1|0)|0)+f)>>0]|0)!=0&1)+d|0;return Za(j+224|0,j+(d+6)|0)|0}function hb(a){a=a|0;var b=0,d=0,e=0,f=0;e=a+136|0;a=9;b=0;while(1){d=c[e>>2]|0;if(!(Za(d+224|0,d+a|0)|0)){a=0;break}b=b+1|0;if((b|0)>=5){a=0;d=0;f=4;break}else a=10}do if((f|0)==4){while(1){f=0;if(!($a((c[e>>2]|0)+224|0)|0)){f=5;break}a=(1<>2]|0)+224|0)|0)<>2]|0)+224|0)|0}function jb(a){a=a|0;a=c[a+136>>2]|0;return Za(a+224|0,a+176|0)|0}function kb(b){b=b|0;var d=0,e=0,f=0;f=a[(c[b+204>>2]|0)+1633>>0]|0;f=(f&255)>5?f:5;e=f&255;d=b+136|0;a:do if(!(f<<24>>24))b=0;else{b=0;do{f=c[d>>2]|0;if(!(Za(f+224|0,f+177|0)|0))break a;b=b+1|0}while((b|0)<(e|0))}while(0);return b|0}function lb(a){a=a|0;a=c[a+136>>2]|0;return Za(a+224|0,a+12|0)|0}function mb(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;k=c[b+200>>2]|0;l=(1<>2])+-1|0;j=c[k+13064>>2]|0;i=f>>j;j=g>>j;m=c[b+136>>2]|0;if((a[m+308>>0]|0)!=0|(l&f|0)!=0)h=d[(c[b+7588>>2]|0)+(i+-1+(R(c[k+13140>>2]|0,j)|0))>>0]|0;else h=0;if((l&g|0)!=0|(a[m+309>>0]|0)!=0)f=d[(c[b+7588>>2]|0)+((R(c[k+13140>>2]|0,j+-1|0)|0)+i)>>0]|0;else f=0;return Za(m+224|0,m+(((h|0)>(e|0)?3:2)+((f|0)>(e|0)&1))|0)|0}function nb(b,d){b=b|0;d=d|0;var e=0,f=0;e=b+136|0;f=c[e>>2]|0;do if(!(Za(f+224|0,f+13|0)|0)){b=c[b+200>>2]|0;if((c[b+13064>>2]|0)==(d|0)){b=c[e>>2]|0;if((c[b+31244>>2]|0)==1){b=3;break}if(Za(b+224|0,b+14|0)|0){b=1;break}if((d|0)==3){b=2;break}b=c[e>>2]|0;b=(Za(b+224|0,b+15|0)|0)==0;b=b?3:2;break}f=(a[b+12940>>0]|0)==0;b=c[e>>2]|0;b=(Za(b+224|0,b+14|0)|0)!=0;if(f){b=b?1:2;break}d=c[e>>2]|0;d=(Za(d+224|0,d+16|0)|0)!=0;if(b){if(d){b=1;break}b=($a((c[e>>2]|0)+224|0)|0)==0;b=b?4:5;break}else{if(d){b=2;break}b=($a((c[e>>2]|0)+224|0)|0)==0;b=b?6:7;break}}else b=0;while(0);return b|0}function ob(a){a=a|0;return Xa((c[a+136>>2]|0)+224|0)|0}function pb(a){a=a|0;a=c[a+136>>2]|0;return Za(a+224|0,a+17|0)|0}function qb(a){a=a|0;var b=0;b=a+136|0;a=0;do{if(!($a((c[b>>2]|0)+224|0)|0))break;a=a+1|0}while((a|0)<2);return a|0}function rb(a){a=a|0;var b=0,d=0;d=a+136|0;a=0;b=$a((c[d>>2]|0)+224|0)|0;do{b=$a((c[d>>2]|0)+224|0)|0|b<<1;a=a+1|0}while((a|0)!=4);return b|0}function sb(a){a=a|0;var b=0;a=a+136|0;b=c[a>>2]|0;if(!(Za(b+224|0,b+18|0)|0))a=4;else{b=($a((c[a>>2]|0)+224|0)|0)<<1;a=$a((c[a>>2]|0)+224|0)|0|b}return a|0}function tb(a){a=a|0;var b=0,d=0;d=a+136|0;b=c[d>>2]|0;b=Za(b+224|0,b+21|0)|0;a:do if(b){a=a+3080|0;if(b>>>0<((c[a>>2]|0)+-1|0)>>>0)do{if(!($a((c[d>>2]|0)+224|0)|0))break a;b=b+1|0}while(b>>>0<((c[a>>2]|0)+-1|0)>>>0)}else b=0;while(0);return b|0}function ub(a){a=a|0;a=c[a+136>>2]|0;return Za(a+224|0,a+20|0)|0}function vb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=a+136|0;a=c[f>>2]|0;e=a+224|0;if((d+b|0)!=12)if(!(Za(e,a+((c[a+31232>>2]|0)+22)|0)|0)){a=c[f>>2]|0;e=a+224|0;g=4}else a=2;else g=4;if((g|0)==4)a=Za(e,a+26|0)|0;return a|0}function wb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=b+-1|0;d=(f|0)<2?f:2;e=a+136|0;a:do if((b|0)>1){a=0;do{b=c[e>>2]|0;if(!(Za(b+224|0,b+(a+27)|0)|0))break;a=a+1|0}while((a|0)<(d|0));if((a|0)==2)if((f|0)>2){a=2;do{if(!($a((c[e>>2]|0)+224|0)|0))break a;a=a+1|0}while((a|0)<(f|0))}else a=2}else a=0;while(0);return a|0}function xb(a){a=a|0;a=c[a+136>>2]|0;return Za(a+224|0,a+35|0)|0}function yb(a){a=a|0;a=c[a+136>>2]|0;return Za(a+224|0,a+36|0)|0}function zb(a,b){a=a|0;b=b|0;a=c[a+136>>2]|0;return Za(a+224|0,a+(42-b)|0)|0}function Ab(a,b){a=a|0;b=b|0;a=c[a+136>>2]|0;return Za(a+224|0,a+(b+42)|0)|0}function Bb(a,b){a=a|0;b=b|0;a=c[a+136>>2]|0;return Za(a+224|0,a+((b|0)==0?41:40)|0)|0}function Cb(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+136|0;b=(b<<2)+166|0;a=0;do{e=c[d>>2]|0;if(!(Za(e+224|0,e+(b+a)|0)|0))break;a=a+1|0}while((a|0)<4);return a|0}function Db(a,b){a=a|0;b=b|0;a=c[a+136>>2]|0;return Za(a+224|0,a+(b+174)|0)|0}function Eb(f,g,h,i,j,k){f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,za=0,Aa=0,Ba=0,Ca=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0;Sa=l;l=l+96|0;Ga=Sa+24|0;Ha=Sa+8|0;Ia=Sa;Ja=f+136|0;Oa=c[Ja>>2]|0;Qa=c[f+160>>2]|0;Ra=c[Qa+32+(k<<2)>>2]|0;La=f+200|0;z=c[La>>2]|0;Pa=R(h>>c[z+13180+(k<<2)>>2],Ra)|0;Pa=(c[Qa+(k<<2)>>2]|0)+((g>>c[z+13168+(k<<2)>>2]<>2])+Pa)|0;z=(k|0)!=0;Qa=Oa+320|0;Na=z?Oa+11680|0:Qa;g=Ga;h=g+64|0;do{a[g>>0]=0;g=g+1|0}while((g|0)<(h|0));y=1<>2]|0;Ma=y<>0]|0)){m=a[Oa+272>>0]|0;o=f+204|0;Ba=c[o>>2]|0;if((a[Ba+21>>0]|0)!=0?(d[Ba+1629>>0]|0)>=(i|0):0)q=Fb(f,k)|0;else q=0;do if(!Ea){g=c[o>>2]|0;if((k|0)==1){g=(c[f+3060>>2]|0)+(c[g+28>>2]|0)|0;h=Oa+302|0}else{g=(c[f+3064>>2]|0)+(c[g+32>>2]|0)|0;h=Oa+303|0}g=g+m+(a[h>>0]|0)|0;m=c[La>>2]|0;h=c[m+13192>>2]|0;Ba=0-h|0;g=(g|0)<(Ba|0)?Ba:(g|0)<57?g:57;if((c[m+4>>2]|0)!=1){g=(g|0)<51?g:51;break}if((g|0)>=30)if((g|0)>43){g=g+-6|0;break}else{g=c[96+(g+-30<<2)>>2]|0;break}}else{Ba=c[La>>2]|0;g=m;h=c[Ba+13192>>2]|0;m=Ba}while(0);n=h+g|0;h=(c[m+52>>2]|0)+i|0;g=h+-5|0;h=1<>0]|0)>>0]<>0];if((a[m+634>>0]|0)!=0?!((i|0)>2&(q|0)!=0):0){o=c[o>>2]|0;o=(a[o+68>>0]|0)==0?m+635|0:o+69|0;p=((c[Oa+31244>>2]|0)!=1?3:0)+k|0;m=o+((i+-2|0)*384|0)+(p<<6)|0;if((i|0)>3){Aa=g;wa=q;x=a[o+1536+((i+-4|0)*6|0)+p>>0]|0}else{Aa=g;wa=q;x=16}}else{Aa=g;wa=q;m=0;x=16}}else{Aa=0;h=0;n=0;wa=0;m=0;x=0}za=Oa+31244|0;do if((c[za>>2]|0)==0?(c[(c[La>>2]|0)+13108>>2]|0)!=0:0){if((wa|0)==0?(a[Ca>>0]|0)==0:0){ua=0;va=0;break}g=Gb(f,k)|0;if(g){ua=g;va=Hb(f,k)|0}else{ua=0;va=0}}else{ua=0;va=0}while(0);ta=i<<1;s=ta+-1|0;Ba=i+-2|0;p=Ea?(Ba*3|0)+(i+-1>>2)|0:15;r=Ea?i+1>>2:Ba;if((ta|0)>1){o=p+52|0;g=0;while(1){ta=c[Ja>>2]|0;if(!(Za(ta+224|0,ta+(o+(g>>r))|0)|0)){q=g;break}g=g+1|0;if((g|0)>=(s|0)){q=g;break}}o=p+70|0;g=0;while(1){ta=c[Ja>>2]|0;if(!(Za(ta+224|0,ta+(o+(g>>r))|0)|0)){r=g;break}g=g+1|0;if((g|0)>=(s|0)){r=g;break}}if((q|0)>3){p=(q>>>1)+-1|0;g=$a((c[Ja>>2]|0)+224|0)|0;if((p|0)>1){o=1;do{g=$a((c[Ja>>2]|0)+224|0)|0|g<<1;o=o+1|0}while((o|0)!=(p|0))}q=g+((q&1|2)<3){p=(r>>>1)+-1|0;g=$a((c[Ja>>2]|0)+224|0)|0;if((p|0)>1){o=1;do{g=$a((c[Ja>>2]|0)+224|0)|0|g<<1;o=o+1|0}while((o|0)!=(p|0))}v=g+((r&1|2)<>2;g=v>>2;Fa=50}else{w=q>>2;u=v>>2;switch(j|0){case 0:break;case 1:{sa=824;ta=840;o=d[856+(v<<3)+q>>0]|0;p=816;r=820;s=v;g=w;break a}default:{s=v;t=q;g=w;Fa=50;break a}}o=d[(q&3)+(732+((v&3)<<2))>>0]|0;switch(i|0){case 2:{sa=414;ta=430;p=3892;r=3892;s=v;g=w;break a}case 3:{p=820;r=816;g=748+(u<<1)+w|0;break}case 4:{p=414;r=430;g=732+(u<<2)+w|0;break}default:{p=446;r=510;g=752+(u<<3)+w|0}}sa=414;ta=430;o=(d[g>>0]<<4)+o|0;s=v;g=w}while(0);if((Fa|0)==50){sa=840;ta=824;o=d[856+(t<<3)+s>>0]|0;p=820;r=816;q=t}ra=o+1|0;pa=o>>4;if((pa|0)>-1){qa=(1<0;oa=na?90:88;ma=y+-1>>2;ia=z?27:0;ja=(i|0)==2;ka=(i|0)==3;la=ia+3|0;_=(j|0)==0?9:15;Z=Ea?0:27;$=(wa|0)==0;Y=Ea?42:43;X=Ea?40:41;aa=(ua|0)!=0;ba=(wa|0)!=0;ga=(Ka|16|0)==26|aa;ca=f+204|0;da=((n|0)<0)<<31>>31;ea=((h|0)<0)<<31>>31;ha=(i|0)>2&ba;fa=(i|0)<4;U=x&255;V=(Ea&1)<<1;W=V|1;T=ia+(ka?9:12)|0;v=1;S=pa;t=0;o=16;while(1){y=S<<4;j=a[p+S>>0]|0;E=j&255;B=a[r+S>>0]|0;F=B&255;D=(S|0)!=0;if((S|0)<(pa|0)&D){if((E|0)<(qa|0))w=d[Ga+(E+1<<3)+F>>0]|0;else w=0;if((F|0)<(qa|0))x=(d[F+1+(Ga+(E<<3))>>0]|0)+w|0;else x=w;k=c[Ja>>2]|0;w=1;k=(Za(k+224|0,k+(((x|0)<1?x:1)+oa)|0)|0)&255}else{w=0;k=((B|j)<<24>>24==0|(E|0)==(g|0)&(F|0)==(u|0))&1}a[Ga+(E<<3)+F>>0]=k;x=ra-y|0;if((S|0)==(pa|0)){a[Ha>>0]=x+255;A=x+-2|0;x=1}else{A=15;x=0}if((E|0)<(ma|0))y=(a[Ga+(E+1<<3)+F>>0]|0)!=0&1;else y=0;if((F|0)<(ma|0))y=((a[F+1+(Ga+(E<<3))>>0]|0)!=0&1)<<1|y;do if((A|0)>-1&k<<24>>24!=0){if(!(c[(c[La>>2]|0)+13100>>2]|0))if(ja){k=920;j=ia}else Fa=71;else if($){z=(a[Ca>>0]|0)!=0;if(z|ja){k=z?984:920;j=z?X:ia}else Fa=71}else{k=984;j=X}do if((Fa|0)==71){Fa=0;k=920+((y<<4)+16)|0;if(Ea){y=(B|j)<<24>>24==0?ia:la;if(ka){j=y+_|0;break}else{j=y+21|0;break}}else j=T}while(0);if((A|0)>0){z=j+92|0;y=A;while(1){Q=c[Ja>>2]|0;if(Za(Q+224|0,Q+(z+(d[k+((d[ta+y>>0]<<2)+(d[sa+y>>0]|0))>>0]|0))|0)|0){a[Ha+(x&255)>>0]=y;x=x+1<<24>>24;w=0}if((y|0)>1)y=y+-1|0;else break}}if(!w){if(c[(c[La>>2]|0)+13100>>2]|0)if($?(a[Ca>>0]|0)==0:0)Fa=84;else w=Y;else Fa=84;if((Fa|0)==84){Fa=0;w=(S|0)==0?Z:j+2|0}Q=c[Ja>>2]|0;if((Za(Q+224|0,Q+(w+92)|0)|0)!=1)break}a[Ha+(x&255)>>0]=0;x=x+1<<24>>24}while(0);Q=x&255;if(x<<24>>24){w=Ea&D?2:0;if(!(c[(c[La>>2]|0)+13116>>2]|0))D=0;else{if($?(a[Ca>>0]|0)==0:0)t=V;else t=W;D=(d[Oa+199+t>>0]|0)>>>2&255}A=(S|0)!=(pa|0)&(v|0)==0&1|w;B=a[Ha>>0]|0;j=B&255;k=Q>>>0<8?Q:8;if((k|0)>0){z=A<<2;w=-1;y=0;v=1;do{P=v+z|0;O=c[Ja>>2]|0;P=(Za(O+224|0,O+((na?P+16|0:P)+136)|0)|0)&255;a[Ia+y>>0]=P;if(!(P<<24>>24))v=((v+-1|0)>>>0<2&1)+v|0;else{w=(w|0)==-1?y:w;v=0}y=y+1|0}while((y|0)<(k|0));P=w}else{P=-1;v=1}y=Q+-1|0;O=a[Ha+y>>0]|0;w=O&255;b:do if(!(a[Ca>>0]|0)){do if((c[za>>2]|0)==1){if(!(ba&(c[(c[La>>2]|0)+13104>>2]|0)!=0)){Fa=103;break}if(ga){w=0;break b}}else Fa=103;while(0);if((Fa|0)==103?(Fa=0,aa):0){w=0;break}w=(j-w|0)>3&1}else w=0;while(0);if((P|0)!=-1){M=c[Ja>>2]|0;M=Za(M+224|0,M+((na?A|4:A)|160)|0)|0;N=Ia+P|0;a[N>>0]=(d[N>>0]|0)+M}N=(w|0)!=0;k=N&(a[(c[ca>>2]|0)+4>>0]|0)!=0;M=k?y&255:x;k=k?17:16;y=M&255;if(!(M<<24>>24))w=0;else{x=0;w=0;do{w=$a((c[Ja>>2]|0)+224|0)|0|w<<1;x=x+1|0}while((x|0)!=(y|0))}M=E<<2;K=F<<2;L=Oa+199+t|0;F=0;E=0;G=w<>0]|0)+M|0;I=(d[ta+I>>0]|0)+K|0;do if((J|0)<8){B=(d[Ia+J>>0]|0)+1|0;A=(J|0)==(P|0);if((B|0)==((A?3:2)|0)&0==((A?0:0)|0))w=0;else{A=E;z=j;w=B;x=0;break}while(1){if(!($a((c[Ja>>2]|0)+224|0)|0)){Fa=114;break}w=w+1|0;if((w|0)>=31){Fa=117;break}}do if((Fa|0)==114){Fa=0;if((w|0)>=3){Fa=117;break}if((j|0)>0){y=0;x=0}else{x=0;break}do{x=$a((c[Ja>>2]|0)+224|0)|0|x<<1;y=y+1|0}while((y|0)!=(j|0))}while(0);if((Fa|0)==117){Fa=0;k=w+-3|0;y=k+j|0;if((y|0)>0){w=0;x=0;do{w=$a((c[Ja>>2]|0)+224|0)|0|w<<1;x=x+1|0}while((x|0)!=(y|0))}else w=0;x=w;w=(1<>31|0,B|0,0)|0;x=C;B=3<>31;y=c[(c[La>>2]|0)+13116>>2]|0;if((x|0)>(z|0)|(x|0)==(z|0)&w>>>0>B>>>0){z=j+1|0;z=(y|0)==0?((z|0)<4?z:4):z}else z=j;if((E|0)!=0|(y|0)==0){A=E;break}k=a[L>>0]|0;y=(k&255)>>>2&255;if((A|0)<(3<>24==0|(A<<1|0)>=(1<>0]=y+k<<24>>24;A=1}else{w=0;while(1){if(!($a((c[Ja>>2]|0)+224|0)|0)){Fa=128;break}w=w+1|0;if((w|0)>=31){Fa=131;break}}do if((Fa|0)==128){Fa=0;if((w|0)>=3){Fa=131;break}if((j|0)>0){y=0;x=0}else{x=0;break}do{x=$a((c[Ja>>2]|0)+224|0)|0|x<<1;y=y+1|0}while((y|0)!=(j|0))}while(0);if((Fa|0)==131){Fa=0;k=w+-3|0;y=k+j|0;if((y|0)>0){w=0;x=0;do{w=$a((c[Ja>>2]|0)+224|0)|0|w<<1;x=x+1|0}while((x|0)!=(y|0))}else w=0;x=w;w=(1<>31;y=c[(c[La>>2]|0)+13116>>2]|0;if((z|0)>=(3<>0]|0;y=(k&255)>>>2&255;if((z|0)<(3<>24==0|(z<<1|0)>=(1<>0]=y+k<<24>>24;A=1;z=j}while(0);if(N&(a[(c[ca>>2]|0)+4>>0]|0)!=0){j=$g(w|0,x|0,F|0,0)|0;F=(j&1|0)==0?1:D<<24>>24!=O<<24>>24;E=Zg(0,0,w|0,x|0)|0;w=F?w:E;x=F?x:C}else j=F;k=(G&32768|0)==0;y=Zg(0,0,w|0,x|0)|0;y=k?w:y;x=k?x:C;k=G<<1&131070;w=y&65535;do if(!(a[Ca>>0]|0)){do if(!((a[(c[La>>2]|0)+634>>0]|0)==0|ha)){if(!(fa|(I|H|0)!=0)){o=U;break}switch(i|0){case 3:{o=(I<<3)+H|0;break}case 4:{o=(I>>>1<<3)+(H>>>1)|0;break}case 5:{o=(I>>>2<<3)+(H>>>2)|0;break}default:o=(I<<2)+H|0}o=d[m+o>>0]|0}while(0);w=eh(y|0,x|0,n|0,da|0)|0;w=eh(w|0,C|0,o|0,((o|0)<0)<<31>>31|0)|0;w=$g(w|0,C|0,h|0,ea|0)|0;w=Yg(w|0,C|0,Aa|0)|0;x=C;if((x|0)<0){w=(w&-32768|0)==-32768&(x&268435455|0)==268435455?w&65535:-32768;break}else{G=x>>>0<0|(x|0)==0&w>>>0<32767;w=G?w:32767;w=w&65535;break}}while(0);b[Na+((I<>1]=w;w=J+1|0;if((w|0)==(Q|0))break;F=j;E=A;G=k;j=z;J=w;D=a[Ha+w>>0]|0}}if((S|0)>0)S=S+-1|0;else break}}do if(!(a[Ca>>0]|0)){g=(i|0)==2;if(wa|0){if(g&(c[(c[La>>2]|0)+13096>>2]|0)!=0?(c[za>>2]|0)==1:0){g=0;do{Ha=Na+(15-g<<1)|0;Ia=b[Ha>>1]|0;Ja=Na+(g<<1)|0;b[Ha>>1]=b[Ja>>1]|0;b[Ja>>1]=Ia;g=g+1|0}while((g|0)!=8)}h=i&65535;ya[c[f+5872>>2]&15](Na,h);g=(ua|0)!=0;if(!g){if(!(c[(c[La>>2]|0)+13104>>2]|0))break;if(!((Ka|16|0)==26&(c[za>>2]|0)==1))break}Da[c[f+5876>>2]&7](Na,h,g?va:(Ka|0)==26&1);break}if(g&(Ea&(c[za>>2]|0)==1)){xa[c[f+5880>>2]&7](Na);break}h=(q|0)>(s|0)?q:s;if(!h){xa[c[f+5900+(Ba<<2)>>2]&7](Na);break}g=s+4+q|0;do if((h|0)>=4)if((h|0)<8){g=(g|0)<8?g:8;break}else{g=(h|0)<12?((g|0)<24?g:24):g;break}else g=(g|0)<4?g:4;while(0);ya[c[f+5884+(Ba<<2)>>2]&15](Na,g)}else{g=(c[(c[La>>2]|0)+13104>>2]|0)!=0;if((ua|0)==0?!((Ka|16|0)==26&g):0)break;Da[c[f+5876>>2]&7](Na,i&65535,g?(Ka|0)==26&1:va)}while(0);if(a[Oa+304>>0]|0?(Ma|0)>0:0){h=c[Oa+284>>2]|0;g=0;do{Oa=Na+(g<<1)|0;b[Oa>>1]=((R(b[Qa+(g<<1)>>1]|0,h)|0)>>>3)+(e[Oa>>1]|0);g=g+1|0}while((g|0)!=(Ma|0))}Da[c[f+5856+(Ba<<2)>>2]&7](Pa,Na,Ra);l=Sa;return}function Fb(a,b){a=a|0;b=b|0;a=c[a+136>>2]|0;return Za(a+224|0,a+(b|0?47:46)|0)|0}function Gb(a,b){a=a|0;b=b|0;a=c[a+136>>2]|0;return Za(a+224|0,a+(b|0?49:48)|0)|0}function Hb(a,b){a=a|0;b=b|0;a=c[a+136>>2]|0;return Za(a+224|0,a+(b|0?51:50)|0)|0}function Ib(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;i=a+136|0;j=c[i>>2]|0;a=Za(j+224|0,j+31|0)|0;d=c[i>>2]|0;d=Za(d+224|0,d+31|0)|0;if(!a)a=0;else{h=c[i>>2]|0;a=(Za(h+224|0,h+34|0)|0)+a|0}if(!d)h=0;else{h=c[i>>2]|0;h=(Za(h+224|0,h+34|0)|0)+d|0}switch(a|0){case 2:{a=2;d=1;do{if(!($a((c[i>>2]|0)+224|0)|0))break;a=(1<>2]|0)+224|0;do{d=d+-1|0;a=(($a(e)|0)<>2]|0;e=f+224|0}while((d|0)!=0);d=c[e>>2]<<1;c[e>>2]=d;if(!(d&65534)){Ob(e);d=c[e>>2]|0}k=c[f+228>>2]<<17;f=d-k|0;g=f>>31;c[e>>2]=(g&k)+f;a=(g^0-a)-g&65535;g=16;break}case 1:{d=c[i>>2]|0;e=d+224|0;a=c[e>>2]<<1;c[e>>2]=a;if(!(a&65534)){Ob(e);a=c[e>>2]|0}k=c[d+228>>2]<<17;g=a-k|0;a=g>>31;c[e>>2]=(a&k)+g;a=(a^65535)-a&65535;g=16;break}case 0:{a=0;g=16;break}default:{}}if((g|0)==16)b[j+31272>>1]=a;switch(h|0){case 2:{a=2;d=1;do{if(!($a((c[i>>2]|0)+224|0)|0))break;a=(1<>2]|0)+224|0;do{d=d+-1|0;a=(($a(e)|0)<>2]|0;e=f+224|0}while((d|0)!=0);d=c[e>>2]<<1;c[e>>2]=d;if(!(d&65534)){Ob(e);d=c[e>>2]|0}i=c[f+228>>2]<<17;k=d-i|0;g=k>>31;c[e>>2]=(g&i)+k;a=(g^0-a)-g&65535;g=28;break}case 1:{d=c[i>>2]|0;e=d+224|0;a=c[e>>2]<<1;c[e>>2]=a;if(!(a&65534)){Ob(e);a=c[e>>2]|0}k=c[d+228>>2]<<17;g=a-k|0;a=g>>31;c[e>>2]=(a&k)+g;a=(a^65535)-a&65535;g=28;break}case 0:{a=0;g=28;break}default:{}}if((g|0)==28)b[j+31274>>1]=a;return}function Jb(a){a=a|0;var b=0;b=0-(Kb(a)|0)&7;if(b|0)Ve(a,b);return}function Kb(a){a=a|0;return c[a+8>>2]|0}function Lb(a){a=a|0;var b=0;b=c[a+12>>2]|0;return b-(Kb(a)|0)|0}function Mb(a){a=a|0;var b=0,d=0;b=c[a+16>>2]|0;d=c[a>>2]|0;b=(d&1|0)==0?b:b+-1|0;b=(d&511|0)==0?b:b+-1|0;d=(c[a+20>>2]|0)-b|0;if((d|0)>=0)Qe(a,b,d);return}function Nb(a){a=a|0;var b=0,d=0,e=0;d=a+4|0;e=c[d>>2]|0;b=(e+-256|0)>>>31;c[d>>2]=e<>2]<>2]=b;if(!(b&65535))Ob(a);return}function Ob(a){a=a|0;var b=0,e=0;b=a+16|0;e=c[b>>2]|0;c[a>>2]=(c[a>>2]|0)+-65535+((d[e+1>>0]|0)<<1|(d[e>>0]|0)<<9);if(e>>>0<(c[a+20>>2]|0)>>>0)c[b>>2]=e+2;return}function Pb(a){a=a|0;var b=0,e=0,f=0;f=c[a>>2]|0;e=a+16|0;b=c[e>>2]|0;c[a>>2]=(((d[b+1>>0]|0)<<1|(d[b>>0]|0)<<9)+-65535<<7-(d[4917+((f+-1^f)>>15)>>0]|0))+f;if(b>>>0<(c[a+20>>2]|0)>>>0)c[e>>2]=b+2;return}function Qb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;d=Rb(b,d,e)|0;f=c[b+136>>2]|0;e=c[f+280>>2]|0;if(e){g=c[(c[b+200>>2]|0)+13192>>2]|0;b=d+52+e+(g<<1)|0;d=b+((b|0)>0?0:-52-g+1|0)|0;d=((d|0)%(g+52|0)|0)-g+b-d|0}a[f+272>>0]=d;return}function Rb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=c[b+136>>2]|0;m=c[b+200>>2]|0;j=c[m+13080>>2]|0;i=(1<>2]|0)+24>>2]|0);h=j&d;j=j&e;k=c[m+13140>>2]|0;m=c[m+13064>>2]|0;l=h>>m;m=j>>m;f=g+203|0;if((a[f>>0]|0)!=0|(h|j|0)==0){a[f>>0]=(a[g+300>>0]|0)==0&1;f=a[b+3100>>0]|0}else f=c[g+276>>2]|0;if((i&d|0)!=0&(h&i|0)!=0){g=l+-1+(R(m,k)|0)|0;g=a[(c[b+7568>>2]|0)+g>>0]|0}else g=f;if((i&e|0)!=0&(j&i|0)!=0){f=(R(m+-1|0,k)|0)+l|0;f=a[(c[b+7568>>2]|0)+f>>0]|0}return g+1+f>>1|0}function Sb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;w=c[b+136>>2]|0;x=b+200|0;j=c[x>>2]|0;F=c[j+13084>>2]|0;y=c[j+13072>>2]|0;D=c[j+13156>>2]|0;z=c[j+13148>>2]|0;A=b+3508|0;k=c[A>>2]|0;E=c[k+16>>2]|0;v=R(D,e>>F)|0;B=d>>F;C=(a[E+((v+B|0)*12|0)+10>>0]|0)==0;i=(e|0)>0&(e&7|0)==0;do if(i){if(((a[b+3050>>0]|0)==0?c[w+31312>>2]&4|0:0)?((e|0)%(1<>2]|0)|0|0)==0:0)break;if((a[(c[b+204>>2]|0)+53>>0]|0)==0?(h=c[w+31312>>2]|0,(h&8|0)!=0):0){if(!((e|0)%(1<>2]|0)|0))break}else{if(!i)break;h=c[w+31312>>2]|0}i=e+-1|0;if(!(h&4))u=c[k+20>>2]|0;else u=Wc(b,k,d,i)|0;r=1<>F)|0;t=b+7596|0;m=R(z,i>>y)|0;n=R(z,e>>y)|0;o=b+7572|0;p=b+5840|0;l=0;do{q=l+d|0;H=q>>F;k=q>>y;G=H+s|0;h=E+(G*12|0)|0;H=H+v|0;i=E+(H*12|0)|0;I=c[t>>2]|0;j=a[I+(k+m)>>0]|0;k=a[I+(k+n)>>0]|0;if((a[E+(H*12|0)+10>>0]|0)!=0?(a[E+(G*12|0)+10>>0]|0)!=0:0)if(!((k|j)<<24>>24))h=Tb(b,i,h,u)|0;else h=1;else h=2;a[(c[o>>2]|0)+((R(c[p>>2]|0,e)|0)+q>>2)>>0]=h;l=l+4|0}while((l|0)<(r|0))}}while(0);h=(d|0)>0&(d&7|0)==0;do if(h){if(((a[b+3050>>0]|0)==0?c[w+31312>>2]&1|0:0)?((d|0)%(1<>2]|0)+13080>>2]|0)|0|0)==0:0)break;if((a[(c[b+204>>2]|0)+53>>0]|0)==0?(g=c[w+31312>>2]|0,(g&2|0)!=0):0){if(!((d|0)%(1<>2]|0)+13080>>2]|0)|0))break}else{if(!h)break;g=c[w+31312>>2]|0}i=d+-1|0;h=c[A>>2]|0;if(!(g&1))t=c[h+20>>2]|0;else t=Wc(b,h,i,e)|0;s=i>>F;l=i>>y;m=d>>y;n=1<>F,D)|0;I=H+s|0;g=E+(I*12|0)|0;H=H+B|0;h=E+(H*12|0)|0;G=c[o>>2]|0;j=R(r>>y,z)|0;i=a[G+(j+l)>>0]|0;j=a[G+(j+m)>>0]|0;if((a[E+(H*12|0)+10>>0]|0)!=0?(a[E+(I*12|0)+10>>0]|0)!=0:0)if(!((j|i)<<24>>24))g=Tb(b,h,g,t)|0;else g=1;else g=2;a[(c[p>>2]|0)+((R(c[q>>2]|0,r)|0)+d>>2)>>0]=g;k=k+4|0}while((k|0)<(n|0))}}while(0);if(!((F|0)>=(f|0)|C)){n=c[(c[A>>2]|0)+20>>2]|0;o=1<8;if(p){i=b+7572|0;j=b+5840|0;g=8;do{k=g+e|0;l=R(k+-1>>F,D)|0;m=R(k>>F,D)|0;h=0;do{I=h+d|0;H=I>>F;H=(Tb(b,E+((H+m|0)*12|0)|0,E+((H+l|0)*12|0)|0,n)|0)&255;a[(c[i>>2]|0)+((R(c[j>>2]|0,k)|0)+I>>2)>>0]=H;h=h+4|0}while((h|0)<(o|0));g=g+8|0}while((g|0)<(o|0))}if((f|0)!=31){i=b+7576|0;j=b+5840|0;g=0;do{k=g+e|0;if(p){l=R(k>>F,D)|0;h=8;do{I=h+d|0;H=(Tb(b,E+(((I>>F)+l|0)*12|0)|0,E+(((I+-1>>F)+l|0)*12|0)|0,n)|0)&255;a[(c[i>>2]|0)+((R(c[j>>2]|0,k)|0)+I>>2)>>0]=H;h=h+8|0}while((h|0)<(o|0))}g=g+4|0}while((g|0)<(o|0))}}return}function Tb(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=a[e+10>>0]|0;m=a[f+10>>0]|0;n=m<<24>>24==3;a:do if(l<<24>>24==3)if(n){d=c[(c[d+3508>>2]|0)+20>>2]|0;j=c[d+64+(a[e+8>>0]<<2)>>2]|0;k=c[g+64+(a[f+8>>0]<<2)>>2]|0;do if((j|0)==(k|0)){i=c[d+260+(a[e+9>>0]<<2)>>2]|0;h=c[g+260+(a[f+9>>0]<<2)>>2]|0;if(!((j|0)==(i|0)&(j|0)==(h|0))){if((h|0)!=(i|0))break;g=(b[f>>1]|0)-(b[e>>1]|0)|0;if((((g|0)>-1?g:0-g|0)|0)>3){h=1;break a}g=(b[f+2>>1]|0)-(b[e+2>>1]|0)|0;if((((g|0)>-1?g:0-g|0)|0)>3){h=1;break a}g=(b[f+4>>1]|0)-(b[e+4>>1]|0)|0;if((((g|0)>-1?g:0-g|0)|0)>3){h=1;break a}f=(b[f+6>>1]|0)-(b[e+6>>1]|0)|0;return (((f|0)>-1?f:0-f|0)|0)>3|0}h=b[f>>1]|0;i=b[e>>1]|0;g=h-i|0;if(!((((((g|0)>-1?g:0-g|0)|0)<=3?(g=(b[f+2>>1]|0)-(b[e+2>>1]|0)|0,(((g|0)>-1?g:0-g|0)|0)<=3):0)?(g=(b[f+4>>1]|0)-(b[e+4>>1]|0)|0,(((g|0)>-1?g:0-g|0)|0)<=3):0)?(g=(b[f+6>>1]|0)-(b[e+6>>1]|0)|0,(((g|0)>-1?g:0-g|0)|0)<=3):0)){g=(b[f+4>>1]|0)-i|0;if((((g|0)>-1?g:0-g|0)|0)>3){h=1;break a}g=(b[f+6>>1]|0)-(b[e+2>>1]|0)|0;if((((g|0)>-1?g:0-g|0)|0)>3){h=1;break a}g=h-(b[e+4>>1]|0)|0;if((((g|0)>-1?g:0-g|0)|0)>3){h=1;break a}f=(b[f+2>>1]|0)-(b[e+6>>1]|0)|0;if((((f|0)>-1?f:0-f|0)|0)>3){h=1;break a}}h=0;break a}else h=c[g+260+(a[f+9>>0]<<2)>>2]|0;while(0);if(((((h|0)==(j|0)?(k|0)==(c[d+260+(a[e+9>>0]<<2)>>2]|0):0)?(g=(b[f+4>>1]|0)-(b[e>>1]|0)|0,(((g|0)>-1?g:0-g|0)|0)<=3):0)?(g=(b[f+6>>1]|0)-(b[e+2>>1]|0)|0,(((g|0)>-1?g:0-g|0)|0)<=3):0)?(g=(b[f>>1]|0)-(b[e+4>>1]|0)|0,(((g|0)>-1?g:0-g|0)|0)<=3):0){h=(b[f+2>>1]|0)-(b[e+6>>1]|0)|0;h=(((h|0)>-1?h:0-h|0)|0)>3}else h=1}else h=1;else if((!n?(j=(l&1^1)&255,i=b[e+(j<<2)+2>>1]|0,k=(m&1^1)&255,h=b[f+(k<<2)+2>>1]|0,(c[(c[(c[d+3508>>2]|0)+20>>2]|0)+(j*196|0)+64+(a[e+8+j>>0]<<2)>>2]|0)==(c[g+(k*196|0)+64+(a[f+8+k>>0]<<2)>>2]|0)):0)?(f=(b[e+(j<<2)>>1]|0)-(b[f+(k<<2)>>1]|0)|0,(((f|0)>-1?f:0-f|0)|0)<=3):0){h=(i<<16>>16)-(h<<16>>16)|0;h=(((h|0)>-1?h:0-h|0)|0)>3}else h=1;while(0);return h&1|0}function Ub(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;g=b+200|0;j=((c[(c[g>>2]|0)+13120>>2]|0)-f|0)<=(d|0);Vb(b,d,e);g=c[g>>2]|0;if(!(a[g+12941>>0]|0)){}else{g=((c[g+13124>>2]|0)-f|0)<=(e|0);h=(e|0)!=0;i=(d|0)!=0;if(i&h)Wb(b,d-f|0,e-f|0);if(i&g)Wb(b,d-f|0,e);h&j?(Wb(b,d,e-f|0),a[b+140>>0]&1):0;j&g?(Wb(b,d,e),a[b+140>>0]&1):0}return}function Vb(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0;_=l;l=l+32|0;U=_+8|0;N=_;X=_+18|0;Y=_+16|0;b[X>>1]=0;b[Y>>1]=0;Z=e+200|0;k=c[Z>>2]|0;h=c[k+13080>>2]|0;j=1<>h,c[k+13128>>2]|0)|0)+(f>>h)|0;i=c[e+3496>>2]|0;T=c[i+(h<<3)+4>>2]|0;M=c[i+(h<<3)>>2]|0;if((c[k+68>>2]|0)!=0?(a[k+13056>>0]|0)!=0:0)W=1;else W=(a[(c[e+204>>2]|0)+40>>0]|0)!=0;V=(f|0)!=0;if(V){L=h+-1|0;O=c[i+(L<<3)+4>>2]|0;L=c[i+(L<<3)>>2]|0}else{O=0;L=0}K=j+f|0;Q=c[k+13120>>2]|0;S=(K|0)>(Q|0)?Q:K;P=j+g|0;J=c[k+13124>>2]|0;P=(P|0)>(J|0)?J:P;K=(Q|0)<=(K|0)?S:S+-8|0;Q=(P|0)>(g|0);if(Q){w=V?f:8;x=(w|0)<(S|0);y=V?f+-8|0:0;z=e+7572|0;A=e+5840|0;B=N+4|0;C=e+160|0;D=X+1|0;E=Y+1|0;F=e+7544|0;G=e+7528|0;H=e+7576|0;I=e+7548|0;J=e+7532|0;v=(y|0)>=(K|0);u=g;i=T;h=M;do{if(x){q=u+4|0;r=i+-2&-2;p=w;do{m=c[H>>2]|0;t=c[A>>2]|0;j=a[m+((R(t,u)|0)+p>>2)>>0]|0;k=j&255;t=a[m+((R(t,q)|0)+p>>2)>>0]|0;m=t&255;n=t<<24>>24==0;do if((t|j)<<24>>24){s=p+-1|0;o=ac(e,s,u)|0;o=o+1+(ac(e,p,u)|0)>>1;t=o+h|0;t=d[1597+((t|0)<0?0:(t|0)<51?t:51)>>0]|0;if(!(j<<24>>24))j=0;else{j=r+(k<<1)+o|0;j=d[1649+((j|0)<0?0:(j|0)<53?j:53)>>0]|0}c[N>>2]=j;if(n)j=0;else{j=r+(m<<1)+o|0;j=d[1649+((j|0)<0?0:(j|0)<53?j:53)>>0]|0}c[B>>2]=j;o=c[C>>2]|0;j=c[o+32>>2]|0;k=R(j,u)|0;k=(c[o>>2]|0)+((p<>2]|0)+56>>2])+k)|0;if(W){a[X>>0]=bc(e,s,u)|0;a[D>>0]=bc(e,s,q)|0;a[Y>>0]=bc(e,p,u)|0;a[E>>0]=bc(e,p,q)|0;Ga[c[I>>2]&3](k,j,t,N,X,Y);break}else{Ga[c[J>>2]&3](k,j,t,N,X,Y);break}}while(0);p=p+8|0}while((p|0)<(S|0))}if(!((u|0)==0|v)){s=u+-1|0;r=y;do{n=c[z>>2]|0;t=R(c[A>>2]|0,u)|0;j=a[n+(t+r>>2)>>0]|0;m=j&255;q=r+4|0;t=a[n+(t+q>>2)>>0]|0;n=t&255;o=t<<24>>24==0;do if((t|j)<<24>>24){k=ac(e,r,s)|0;k=k+1+(ac(e,r,u)|0)>>1;h=(r|0)>=(f|0);i=h?T:O;h=h?M:L;p=k+h|0;p=d[1597+((p|0)<0?0:(p|0)<51?p:51)>>0]|0;if(!(j<<24>>24))j=0;else{j=(i+-2&-2)+(m<<1)+k|0;j=d[1649+((j|0)<0?0:(j|0)<53?j:53)>>0]|0}c[N>>2]=j;if(o)j=0;else{j=(i+-2&-2)+(n<<1)+k|0;j=d[1649+((j|0)<0?0:(j|0)<53?j:53)>>0]|0}c[B>>2]=j;t=c[C>>2]|0;j=c[t+32>>2]|0;k=R(j,u)|0;k=(c[t>>2]|0)+((r<>2]|0)+56>>2])+k)|0;if(W){a[X>>0]=bc(e,r,s)|0;a[D>>0]=bc(e,q,s)|0;a[Y>>0]=bc(e,r,u)|0;a[E>>0]=bc(e,q,u)|0;Ga[c[F>>2]&3](k,j,p,N,X,Y);break}else{Ga[c[G>>2]&3](k,j,p,N,X,Y);break}}while(0);r=r+8|0}while((r|0)<(K|0))}u=u+8|0}while((u|0)<(P|0));k=c[Z>>2]|0}else i=T;a:do if(c[k+4>>2]|0){z=V?O:T;A=e+7572|0;B=e+5840|0;C=U+4|0;D=e+160|0;E=X+1|0;F=Y+1|0;G=e+7552|0;H=e+7536|0;I=e+7576|0;J=e+7556|0;K=e+7540|0;h=1;while(1){j=1<>2];k=1<>2];if(Q){u=j<<3;v=V?f:u;w=(v|0)<(S|0);x=k<<3;y=V?f-u|0:0;t=j<<2;s=k<<2;r=g;do{if(w){o=r+s|0;n=v;do{O=c[I>>2]|0;k=c[B>>2]|0;j=a[O+((R(k,r)|0)+n>>2)>>0]|0;j=j<<24>>24==2;k=(a[O+((R(k,o)|0)+n>>2)>>0]|0)==2;do if(j|k){p=n+-1|0;m=ac(e,p,o)|0;m=m+1+(ac(e,n,o)|0)>>1;if(j){j=ac(e,p,r)|0;j=cc(e,j+1+(ac(e,n,r)|0)>>1,h,i)|0}else j=0;c[U>>2]=j;if(k)j=cc(e,m,h,i)|0;else j=0;c[C>>2]=j;N=c[D>>2]|0;O=c[Z>>2]|0;j=c[N+32+(h<<2)>>2]|0;k=R(r>>c[O+13180+(h<<2)>>2],j)|0;k=(c[N+(h<<2)>>2]|0)+((n>>c[O+13168+(h<<2)>>2]<>2])+k)|0;if(W){a[X>>0]=bc(e,p,r)|0;a[E>>0]=bc(e,p,o)|0;a[Y>>0]=bc(e,n,r)|0;a[F>>0]=bc(e,n,o)|0;wa[c[J>>2]&3](k,j,U,X,Y);break}else{wa[c[K>>2]&3](k,j,U,X,Y);break}}while(0);n=n+u|0}while((n|0)<(S|0))}if(r){n=S-((S|0)==(c[(c[Z>>2]|0)+13120>>2]|0)?0:u)|0;if((y|0)<(n|0)){p=r+-1|0;o=y;do{O=c[A>>2]|0;k=R(c[B>>2]|0,r)|0;q=o+t|0;i=(a[O+(k+o>>2)>>0]|0)==2;k=(a[O+(k+q>>2)>>0]|0)==2;do if(i|k){if(i){j=ac(e,o,p)|0;j=j+1+(ac(e,o,r)|0)>>1}else j=0;if(k){m=ac(e,q,p)|0;m=m+1+(ac(e,q,r)|0)>>1}else m=0;if(i)i=cc(e,j,h,z)|0;else i=0;c[U>>2]=i;if(k)i=cc(e,m,h,T)|0;else i=0;c[C>>2]=i;N=c[D>>2]|0;O=c[Z>>2]|0;i=c[N+32+(h<<2)>>2]|0;j=R(r>>c[O+13184>>2],i)|0;j=(c[N+(h<<2)>>2]|0)+((o>>c[O+13172>>2]<>2])+j)|0;if(W){a[X>>0]=bc(e,o,p)|0;a[E>>0]=bc(e,q,p)|0;a[Y>>0]=bc(e,o,r)|0;a[F>>0]=bc(e,q,r)|0;wa[c[G>>2]&3](j,i,U,X,Y);break}else{wa[c[H>>2]&3](j,i,U,X,Y);break}}while(0);o=o+u|0}while((o|0)<(n|0));i=z}else i=z}r=r+x|0}while((r|0)<(P|0))}h=h+1|0;if((h|0)==3)break a;k=c[Z>>2]|0}}while(0);l=_;return}function Wb(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0;ga=l;l=l+48|0;Z=ga+16|0;_=ga+34|0;ba=ga+32|0;da=ga+8|0;ea=ga;fa=d+200|0;x=c[fa>>2]|0;y=c[x+13080>>2]|0;T=e>>y;U=f>>y;s=c[x+13128>>2]|0;i=R(U,s)|0;V=i+T|0;k=c[d+204>>2]|0;m=c[k+1668>>2]|0;n=c[m+(V<<2)>>2]|0;W=d+3492|0;X=c[W>>2]|0;Y=X+(V*148|0)|0;b[_>>1]=0;b[ba>>1]=0;c[da>>2]=0;if(!(a[k+42>>0]|0))o=0;else o=(a[k+53>>0]|0)==0;t=(a[(c[d+7604>>2]|0)+V>>0]|0)==0;w=t|o;u=(T|0)==0;c[Z>>2]=u&1;q=(U|0)==0;$=Z+4|0;c[$>>2]=q&1;r=(T|0)==(s+-1|0);aa=Z+8|0;c[aa>>2]=r&1;v=(U|0)==((c[x+13132>>2]|0)+-1|0);ca=Z+12|0;c[ca>>2]=v&1;if(w){if(u)p=0;else{if(o){g=c[k+1676>>2]|0;g=(c[g+(n<<2)>>2]|0)!=(c[g+(c[m+(V+-1<<2)>>2]<<2)>>2]|0)}else g=0;h=g&1;if(t?(Q=c[d+7580>>2]|0,(c[Q+(V<<2)>>2]|0)!=(c[Q+(T+-1+i<<2)>>2]|0)):0)g=1;a[_>>0]=g&1;p=h}if(r)j=0;else{if(o){g=c[k+1676>>2]|0;g=(c[g+(n<<2)>>2]|0)!=(c[g+(c[m+(V+1<<2)>>2]<<2)>>2]|0)}else g=0;h=g&1;if(t?(Q=c[d+7580>>2]|0,(c[Q+(V<<2)>>2]|0)!=(c[Q+(T+1+i<<2)>>2]|0)):0)g=1;a[_+1>>0]=g&1;j=h}if(q)h=0;else{if(o){g=c[k+1676>>2]|0;g=(c[g+(n<<2)>>2]|0)!=(c[g+(c[m+(V-s<<2)>>2]<<2)>>2]|0)}else g=0;h=g&1;if(t?(Q=c[d+7580>>2]|0,(c[Q+(V<<2)>>2]|0)!=(c[Q+((R(s,U+-1|0)|0)+T<<2)>>2]|0)):0)g=1;a[ba>>0]=g&1}if(v)g=0;else{if(o){i=c[k+1676>>2]|0;i=(c[i+(n<<2)>>2]|0)!=(c[i+(c[m+(s+V<<2)>>2]<<2)>>2]|0)}else i=0;g=i&1;if(t?(Q=c[d+7580>>2]|0,(c[Q+(V<<2)>>2]|0)!=(c[Q+((R(s,U+1|0)|0)+T<<2)>>2]|0)):0)i=1;a[ba+1>>0]=i&1}if(!(q|u)){if(t){Q=c[d+7580>>2]|0;if(p<<24>>24==0?(c[Q+(V<<2)>>2]|0)==(c[Q+(T+-1+(R(s,U+-1|0)|0)<<2)>>2]|0):0)S=36;else i=1}else if(!(p<<24>>24))S=36;else i=1;if((S|0)==36)i=h;a[da>>0]=i}if(!(r|q)){if(t){Q=c[d+7580>>2]|0;if(j<<24>>24==0?(c[Q+(V<<2)>>2]|0)==(c[Q+(T+1+(R(s,U+-1|0)|0)<<2)>>2]|0):0)S=42;else h=1}else if(!(j<<24>>24))S=42;else h=1;a[da+1>>0]=h}if(!(v|r)){if(t){Q=c[d+7580>>2]|0;if(j<<24>>24==0?(c[Q+(V<<2)>>2]|0)==(c[Q+(T+1+(R(s,U+1|0)|0)<<2)>>2]|0):0)S=48;else h=1}else if(!(j<<24>>24))S=48;else h=1;if((S|0)==48)h=g;a[da+2>>0]=h}if(!(v|u)){if(t){Q=c[d+7580>>2]|0;if(p<<24>>24==0?(c[Q+(V<<2)>>2]|0)==(c[Q+(T+-1+(R(s,U+1|0)|0)<<2)>>2]|0):0)S=54;else g=1}else if(!(p<<24>>24))S=54;else g=1;a[da+3>>0]=g}}D=c[x+4>>2]|0?3:1;E=d+160|0;F=d+168|0;G=d+5916|0;M=U<<1;H=M+-1|0;I=ea+4|0;J=U+-1|0;K=T+1|0;L=T+-1|0;M=M+2|0;N=ea+4|0;O=U+1|0;Q=T<<1;P=Q+-1|0;Q=Q+2|0;C=d+5920+((w&1)<<2)|0;g=0;i=x;h=y;while(1){n=c[i+13168+(g<<2)>>2]|0;z=e>>n;q=c[i+13180+(g<<2)>>2]|0;A=f>>q;r=c[E>>2]|0;B=c[r+32+(g<<2)>>2]|0;w=1<>n;t=w>>q;n=c[i+13120>>2]>>n;v=n-z|0;s=(s|0)>(v|0)?v:s;q=c[i+13124>>2]>>q;v=q-A|0;t=(t|0)>(v|0)?v:t;v=R(B,A)|0;u=c[i+56>>2]|0;v=(c[r+(g<<2)>>2]|0)+((z<>2]|0)+w+r|0;y=X+(V*148|0)+142+g|0;switch(a[y>>0]|0){case 1:{Xb(x,v,s<>2]&1](v,x,B,w,Y,Z,s,t,g);Zb(d,v,x,B,w,e,f,s,t,g);S=78;break}case 2:{o=c[Z>>2]|0;p=c[aa>>2]|0;k=c[ca>>2]|0;if(!(c[$>>2]|0)){S=1-o|0;j=0-(S<>2]=v+(0-B)+j;c[I>>2]=(c[d+172+(g<<2)>>2]|0)+((R(n,H)|0)+z-S<>2]|0)+((L+(R(c[i+13128>>2]|0,J)|0)|0)*148|0)+142+g>>0]|0)==3&1)<<2)>>2]|0,u);j=r;h=c[fa>>2]|0}i=s<>2]|0)+(((R(c[h+13128>>2]|0,J)|0)+T|0)*148|0)+142+g>>0]|0)==3&1)<<2)>>2]|0)+j|0,i|0)|0;if((p|0)!=1){S=j+i|0;_b(m+S|0,(c[ea+(((a[(c[W>>2]|0)+((K+(R(c[(c[fa>>2]|0)+13128>>2]|0,J)|0)|0)*148|0)+142+g>>0]|0)==3&1)<<2)>>2]|0)+S|0,u)}}if(!k){S=1-o|0;m=0-(S<>2]=v+(R(t,B)|0)+m;c[N>>2]=(c[d+172+(g<<2)>>2]|0)+((R(n,M)|0)+z-S<>2]|0)+((L+(R(c[(c[fa>>2]|0)+13128>>2]|0,O)|0)|0)*148|0)+142+g>>0]|0)==3&1)<<2)>>2]|0,u);h=r}i=s<>2]|0)+(((R(c[(c[fa>>2]|0)+13128>>2]|0,O)|0)+T|0)*148|0)+142+g>>0]|0)==3&1)<<2)>>2]|0)+h|0,i|0)|0;if((p|0)!=1){S=h+i|0;_b(j+S|0,(c[ea+(((a[(c[W>>2]|0)+((K+(R(c[(c[fa>>2]|0)+13128>>2]|0,O)|0)|0)*148|0)+142+g>>0]|0)==3&1)<<2)>>2]|0)+S|0,u)}}if(!o)if((a[(c[W>>2]|0)+((L+(R(c[(c[fa>>2]|0)+13128>>2]|0,U)|0)|0)*148|0)+142+g>>0]|0)==3){i=(R(q,P)|0)+A<>2]|0)+i|0,u,t,w,r);i=0}else i=1;else i=0;if(!p)if((a[(c[W>>2]|0)+((K+(R(c[(c[fa>>2]|0)+13128>>2]|0,U)|0)|0)*148|0)+142+g>>0]|0)==3){h=(R(q,Q)|0)+A<>2]|0)+h|0,u,t,w,r);h=0}else h=1;else h=0;S=0-(i<>2]&3](v,x,B,w,Y,Z,s,t,g,_,ba,da);Zb(d,v,x,B,w,e,f,s,t,g);S=78;break}default:{}}if((S|0)==78){S=0;a[y>>0]=3}g=g+1|0;if((g|0)>=(D|0))break;h=c[fa>>2]|0;i=h;h=c[h+13080>>2]|0}l=ga;return}function Xb(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0;if((d|0)>0){g=0;while(1){fh(a|0,b|0,c|0)|0;g=g+1|0;if((g|0)==(d|0))break;else{a=a+e|0;b=b+f|0}}}return}function Yb(a,b,d,e,f,g,h,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0;m=c[a+200>>2]|0;l=c[m+56>>2]|0;o=c[m+13120>>2]>>c[m+13168+(i<<2)>>2];m=c[m+13124>>2]>>c[m+13180+(i<<2)>>2];p=a+172+(i<<2)|0;n=k<<1;k=g<>2]|0)+((R(o,n)|0)+e<>2]|0)+((R(o,n|1)|0)+e<>2]|0)+((R(m,j)|0)+f<>2]|0)+((R(m,j|1)|0)+f<>2]|0;if(!(a[(c[b+204>>2]|0)+40>>0]|0)){if(a[m+13056>>0]|0?c[m+68>>2]|0:0)n=4}else n=4;if((n|0)==4?(y=c[m+13084>>2]|0,o=1<>2]|0,v=c[m+13180+(l<<2)>>2]|0,w=h>>y,p=i>>y,x=j+h>>y,y=k+i>>y,z=o>>u<>2],(p|0)<(y|0)):0){s=(w|0)<(x|0);r=b+7600|0;o=o>>v;q=(o|0)>0;n=p;do{if(s){b=n-i|0;l=w;do{m=c[t>>2]|0;if(a[(c[r>>2]|0)+((R(c[m+13156>>2]|0,n)|0)+l)>>0]|0?(B=c[m+13084>>2]|0,A=b<>v,B=l-h<>u<>2],q):0){m=d+(R(A,f)|0)+B|0;j=0;k=e+(R(A,g)|0)+B|0;while(1){fh(m|0,k|0,z|0)|0;j=j+1|0;if((j|0)==(o|0))break;else{m=m+f|0;k=k+g|0}}}l=l+1|0}while((l|0)!=(x|0))}n=n+1|0}while((n|0)!=(y|0))}return}function _b(c,d,e){c=c|0;d=d|0;e=e|0;if(!e)a[c>>0]=a[d>>0]|0;else b[c>>1]=b[d>>1]|0;return}function $b(c,d,e,f,g,h){c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;i=(f|0)>0;if(!e){if(i){e=0;while(1){a[c>>0]=a[d>>0]|0;e=e+1|0;if((e|0)==(f|0))break;else{c=c+g|0;d=d+h|0}}}}else if(i){e=0;while(1){b[c>>1]=b[d>>1]|0;e=e+1|0;if((e|0)==(f|0))break;else{c=c+g|0;d=d+h|0}}}return}function ac(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=c[b+200>>2]|0;f=c[g+13064>>2]|0;return a[(c[b+7568>>2]|0)+((R(c[g+13140>>2]|0,e>>f)|0)+(d>>f))>>0]|0}function bc(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;h=c[a+200>>2]|0;i=c[h+13084>>2]|0;if(((e|b|0)>=0?(j=b>>i,f=e>>i,g=c[h+13156>>2]|0,(j|0)<(g|0)):0)?(f|0)<(c[h+13160>>2]|0):0){j=(R(g,f)|0)+j|0;a=d[(c[a+7600>>2]|0)+j>>0]|0}else a=2;return a|0}function cc(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0;g=c[a+204>>2]|0;b=(c[((e|0)==1?g+28|0:g+32|0)>>2]|0)+b|0;b=(b|0)<0?0:(b|0)<57?b:57;do if((c[(c[a+200>>2]|0)+4>>2]|0)==1){if((b|0)>=30)if((b|0)>43){b=b+-6|0;break}else{b=d[1703+(b+-30)>>0]|0;break}}else b=(b|0)<0?0:(b|0)<51?b:51;while(0);g=f+2+b|0;return d[1649+((g|0)<0?0:(g|0)<53?g:53)>>0]|0|0}function dc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=c[a+200>>2]|0;i=((c[f+13120>>2]|0)-e|0)<=(b|0);f=((c[f+13124>>2]|0)-e|0)<=(d|0);g=(d|0)!=0;h=(b|0)!=0;if(h&g)Ub(a,b-e|0,d-e|0,e);if(g&i)Ub(a,b,d-e|0,e);if(h&f)Ub(a,b-e|0,d,e);return}function ec(b){b=b|0;var d=0,e=0,f=0;f=c[b+60>>2]|0;Re();kd();d=Qc(b)|0;if((d|0)>=0){c[f+7620>>2]=0;c[f+7772>>2]=0;e=c[b+808>>2]|0;if(!(e&2))d=1;else d=c[b+800>>2]&255;a[f+141>>0]=d;if((e&1|0)!=0?(c[b+800>>2]|0)>1:0)d=1;else d=2;a[f+140>>0]=d;d=0}return d|0}function fc(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=c[a+60>>2]|0;j=g+28|0;a=c[j>>2]|0;if(!a){a=$c(h,d,1)|0;if((a|0)>=0){c[f>>2]=a;a=0}}else{c[h+3508>>2]=0;i=h+7776|0;b[i>>1]=1;a=jc(h,c[g+24>>2]|0,a)|0;if((a|0)>=0){a=h+5848|0;if(c[a>>2]|0)c[a>>2]=0;a=c[h+164>>2]|0;if(c[a+304>>2]|0){h=a+128|0;c[h>>2]=e[i>>1];c[h+4>>2]=0;Qf(d,a);c[f>>2]=1}a=c[j>>2]|0}}return a|0}function gc(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;g=c[b+60>>2]|0;ic(g);h=g+7664|0;d=g+7644|0;if((c[h>>2]|0)>0){b=0;do{hf((c[d>>2]|0)+(b<<2)|0);b=b+1|0}while((b|0)<(c[h>>2]|0))}hf(g+7648|0);hf(g+7640|0);hf(d);hf(g+152|0);hf(g+168|0);b=0;do{hf(g+172+(b<<2)|0);hf(g+184+(b<<2)|0);b=b+1|0}while((b|0)!=3);Of(g+164|0);b=0;do{f=g+3512+(b*72|0)|0;Vc(g,f,-1);Of(f);b=b+1|0}while((b|0)!=32);b=0;do{wf(g+208+(b<<2)|0);b=b+1|0}while((b|0)!=16);b=0;do{wf(g+272+(b<<2)|0);b=b+1|0}while((b|0)!=32);b=0;do{wf(g+400+(b<<2)|0);b=b+1|0}while((b|0)!=256);c[g+200>>2]=0;c[g+204>>2]=0;c[g+196>>2]=0;wf(g+1424|0);hf(g+3084|0);hf(g+3088|0);hf(g+3092|0);f=g+141|0;b=a[f>>0]|0;if((b&255)>1){e=1;do{d=g+72+(e<<2)|0;if(c[d>>2]|0){hf(d);hf(g+8+(e<<2)|0);b=a[f>>0]|0}e=e+1|0}while((e|0)<(b&255|0))}b=g+136|0;d=g+72|0;if((c[b>>2]|0)==(c[d>>2]|0))c[b>>2]=0;hf(d);d=g+7656|0;if((c[h>>2]|0)>0){b=0;do{hf((c[d>>2]|0)+(b<<4)|0);b=b+1|0}while((b|0)<(c[h>>2]|0))}hf(d);c[h>>2]=0;return 0}function hc(a){a=a|0;a=c[a+60>>2]|0;Yc(a);c[a+5836>>2]=2147483647;return}function ic(a){a=a|0;hf(a+3492|0);hf(a+3496|0);hf(a+7584|0);hf(a+7588|0);hf(a+7592|0);hf(a+7596|0);hf(a+7600|0);hf(a+7568|0);hf(a+7580|0);hf(a+7604|0);hf(a+7572|0);hf(a+7576|0);hf(a+3084|0);hf(a+3092|0);hf(a+3088|0);Af(a+1428|0);Af(a+1432|0);return}function jc(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;y=b+3508|0;c[y>>2]=0;u=b+5828|0;c[b+5832>>2]=c[u>>2];c[u>>2]=0;x=b+7660|0;c[x>>2]=0;a:do if((f|0)>3){v=b+7722|0;k=b+7664|0;l=b+7648|0;m=b+7636|0;n=b+7644|0;o=b+7632|0;p=b+7656|0;q=b+7628|0;w=b+7640|0;r=b+136|0;s=b+3500|0;t=b+7732|0;while(1){j=(a[v>>0]|0)==0;if(!j){i=c[t>>2]|0;if((i|0)>0){h=0;g=0;do{g=d[e+h>>0]|g<<8;h=h+1|0}while((h|0)<(i|0))}else g=0;f=f-i|0;if((g|0)>(f|0)){e=-1094995529;break a}else{i=e+i|0;h=f}}else{while(1){g=e+1|0;if(((a[e>>0]|0)==0?(a[g>>0]|0)==0:0)?(a[e+2>>0]|0)==1:0)break;if((f|0)<5){e=-1094995529;break a}else{e=g;f=f+-1|0}}g=0;i=e+3|0;h=f+-3|0}g=j?h:g;e=c[k>>2]|0;f=c[x>>2]|0;if((e|0)<=(f|0)){e=e+1|0;f=jf(c[p>>2]|0,e,16)|0;if(!f){e=-12;break a}c[p>>2]=f;j=c[k>>2]|0;ah(f+(j<<4)|0,0,e-j<<4|0)|0;kf(w,e,4)|0;kf(l,e,4)|0;kf(n,e,4)|0;f=c[l>>2]|0;c[f+(c[k>>2]<<2)>>2]=1024;f=of(c[f+(c[k>>2]<<2)>>2]|0,4)|0;c[(c[n>>2]|0)+(c[k>>2]<<2)>>2]=f;c[k>>2]=e;f=c[x>>2]|0}c[m>>2]=c[(c[l>>2]|0)+(f<<2)>>2];c[o>>2]=c[(c[n>>2]|0)+(f<<2)>>2];e=c[p>>2]|0;g=kc(b,i,g,e+(f<<4)|0)|0;c[(c[w>>2]|0)+(c[x>>2]<<2)>>2]=c[q>>2];c[(c[l>>2]|0)+(c[x>>2]<<2)>>2]=c[m>>2];A=c[o>>2]|0;z=c[n>>2]|0;j=c[x>>2]|0;c[x>>2]=j+1;c[z+(j<<2)>>2]=A;if((g|0)<0){e=g;break a}e=lc((c[r>>2]|0)+204|0,c[e+(f<<4)+12>>2]|0,c[e+(f<<4)+8>>2]|0)|0;if((e|0)<0)break a;mc(b)|0;if((c[s>>2]&-2|0)==36)c[u>>2]=1;f=h-g|0;if((f|0)<=3)break;else e=i+g|0}if((c[x>>2]|0)>0){g=b+7628|0;h=b+7644|0;i=b+7632|0;j=b+7656|0;f=0;do{c[g>>2]=c[(c[w>>2]|0)+(f<<2)>>2];c[i>>2]=c[(c[h>>2]|0)+(f<<2)>>2];A=c[j>>2]|0;if((nc(b,c[A+(f<<4)+12>>2]|0,c[A+(f<<4)+8>>2]|0)|0)<0)break a;f=f+1|0}while((f|0)<(c[x>>2]|0))}}else e=0;while(0);return e|0}function kc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;n=b+7628|0;c[n>>2]=0;a:do if((e|0)>1){g=0;while(1){if(!(a[d+g>>0]|0)){h=g+-1|0;if((g|0)>0)g=(a[d+h>>0]|0)==0?h:g;h=g+2|0;if(((h|0)<(e|0)?(a[d+(g+1)>>0]|0)==0:0)?(i=a[d+h>>0]|0,(i&255)<4):0)break}h=g+2|0;if((g+3|0)<(e|0))g=h;else break a}e=i<<24>>24==3?e:g;h=g}else h=0;while(0);b:do if((h|0)<(e+-1|0)){mf(f,f+4|0,e+32|0);o=c[f>>2]|0;if(!o)e=-12;else{fh(o|0,d|0,h|0)|0;i=h+2|0;c:do if((i|0)<(e|0)){m=b+7636|0;l=b+7632|0;g=h;b=h;while(1){k=d+i|0;j=a[k>>0]|0;h=a[d+b>>0]|0;do if((j&255)<=3)if(!(h<<24>>24))if(!(a[d+(b+1)>>0]|0)){if(j<<24>>24!=3){i=g;e=b;break c}i=g+1|0;a[o+g>>0]=0;g=g+2|0;a[o+i>>0]=0;b=b+3|0;k=c[n>>2]|0;c[n>>2]=k+1;h=c[m>>2]|0;if((h|0)>(k|0)){h=c[l>>2]|0;if(!h)break}else{h=h<<1;c[m>>2]=h;kf(l,h,4)|0;h=c[l>>2]|0;if(!h){e=-12;break b}}c[h+((c[n>>2]|0)+-1<<2)>>2]=i}else{h=0;p=26}else p=26;else{a[o+g>>0]=h;a[o+(g+1)>>0]=a[d+(b+1)>>0]|0;g=g+2|0;b=i;h=a[k>>0]|0;p=26}while(0);if((p|0)==26){p=0;a[o+g>>0]=h;g=g+1|0;b=b+1|0}i=b+2|0;if((i|0)>=(e|0)){p=15;break}}}else{g=h;b=h;p=15}while(0);if((p|0)==15)if((b|0)<(e|0)){i=e+g|0;h=b;while(1){a[o+g>>0]=a[d+h>>0]|0;h=h+1|0;if((h|0)==(e|0))break;else g=g+1|0}i=i-b|0}else{i=g;e=b}g=o+i|0;h=g+32|0;do{a[g>>0]=0;g=g+1|0}while((g|0)<(h|0));c[f+12>>2]=o;c[f+8>>2]=i}}else{c[f+12>>2]=d;c[f+8>>2]=e}while(0);return e|0}function lc(a,b,c){a=a|0;b=b|0;c=c|0;return Gc(a,b,c>>>0>268435455?-8:c<<3)|0}function mc(a){a=a|0;var b=0,d=0;b=(c[a+136>>2]|0)+204|0;if(!(We(b)|0)){c[a+3500>>2]=Te(b,6)|0;d=Te(b,6)|0;b=(Te(b,3)|0)+-1|0;c[a+3504>>2]=b;return ((b|0)<0?-1094995529:(d|0)==0&1)|0}else return -1094995529;return 0}function nc(d,f,g){d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;f=lc((c[d+136>>2]|0)+204|0,f,g)|0;a:do if((f|0)>=0){f=mc(d)|0;b:do if((f|0)>=0){if(!f){f=0;break a}k=d+3500|0;switch(c[k>>2]|0){case 48:{f=ie(d)|0;if((f|0)<0)break b;else{f=0;break a}}case 34:{f=me(d)|0;if((f|0)<0)break b;else{f=0;break a}}case 40:case 39:{f=se(d)|0;if((f|0)<0)break b;else{f=0;break a}}case 9:case 8:case 7:case 6:case 21:case 20:case 19:case 18:case 17:case 16:case 5:case 4:case 3:case 2:case 0:case 1:{f=oc(d)|0;if((f|0)<0)break a;i=d+5836|0;g=c[i>>2]|0;j=c[k>>2]|0;c:do if((g|0)==2147483647){switch(j|0){case 18:case 16:case 17:case 21:{g=c[d+5816>>2]|0;break}case 20:case 19:{g=-2147483648;break}default:{g=2147483647;break c}}c[i>>2]=g}while(0);h=(j|0)==9;if((j&-2|0)==8){if((c[d+5816>>2]|0)<=(g|0)){c[d+5848>>2]=0;f=0;break a}if(h)c[i>>2]=-2147483648}if(!(a[d+2436>>0]|0))if(!(c[d+3508>>2]|0))break b;else f=j;else{f=pc(d)|0;if((f|0)<0)break a;f=c[k>>2]|0}if((f|0)!=(c[d+7668>>2]|0)){f=-1094995529;break a}if(((a[d+2437>>0]|0)==0?(c[d+2428>>2]|0)!=2:0)?(l=bd(d)|0,(l|0)<0):0){f=l;break b}f=qc(d)|0;l=c[d+200>>2]|0;if((f|0)>=(R(c[l+13132>>2]|0,c[l+13128>>2]|0)|0))c[d+5848>>2]=1;if((f|0)<0)break b;else{f=0;break a}}case 37:case 36:{f=d+7616|0;b[f>>1]=(e[f>>1]|0)+1&255;c[d+5836>>2]=2147483647;f=0;break a}default:{f=0;break a}}}while(0);f=(c[(c[d+4>>2]|0)+688>>2]&8|0)==0?0:f}while(0);return f|0}function oc(f){f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=f+136|0;w=(c[v>>2]|0)+204|0;u=(We(w)|0)&255;n=f+2436|0;a[n>>0]=u;q=f+3500|0;g=c[q>>2]|0;if(!(u<<24>>24==0|(g+-16|0)>>>0>4)?(u=f+7616|0,b[u>>1]=(e[u>>1]|0)+1&255,c[f+5836>>2]=2147483647,(g+-19|0)>>>0<2):0){Xc(f);g=c[q>>2]|0}l=f+3034|0;a[l>>0]=0;if((g&-8|0)==16)a[l>>0]=We(w)|0;g=Ye(w)|0;c[f+2416>>2]=g;a:do if(g>>>0<=255?(h=c[f+400+(g<<2)>>2]|0,(h|0)!=0):0){k=a[n>>0]|0;if(!(k<<24>>24)){g=f+204|0;h=c[h+4>>2]|0;if((c[g>>2]|0)!=(h|0)){g=-1094995529;break}u=g}else{u=f+204|0;h=c[h+4>>2]|0}c[u>>2]=h;i=c[q>>2]|0;j=(i|0)==21;if(j?(c[f+5832>>2]|0)==1:0)a[l>>0]=1;t=f+200|0;g=c[t>>2]|0;h=c[(c[f+272+(c[h>>2]<<2)>>2]|0)+4>>2]|0;if((g|0)==(h|0))h=k;else{c[t>>2]=h;do if(g|0?!(j|(i&-8|0)!=16):0){if(((c[h+13120>>2]|0)==(c[g+13120>>2]|0)?(c[h+13124>>2]|0)==(c[g+13124>>2]|0):0)?(c[h+76+(((c[h+72>>2]|0)+-1|0)*12|0)>>2]|0)==(c[g+76+(((c[g+72>>2]|0)+-1|0)*12|0)>>2]|0):0)break;a[l>>0]=0}while(0);Xc(f);g=Jc(f,c[t>>2]|0)|0;if((g|0)<0)break;g=f+7616|0;b[g>>1]=(e[g>>1]|0)+1&255;c[f+5836>>2]=2147483647;g=c[t>>2]|0;h=a[n>>0]|0}i=f+4|0;s=c[i>>2]|0;c[s+832>>2]=d[g+302>>0];c[s+836>>2]=d[g+335>>0];s=f+2437|0;a[s>>0]=0;do if(!(h<<24>>24)){if(a[(c[u>>2]|0)+41>>0]|0){a[s>>0]=We(w)|0;g=c[t>>2]|0}g=(R(c[g+13128>>2]<<1,c[g+13132>>2]|0)|0)+-2|0;o=g>>>0>65535;g=o?g>>>16:g;o=o?16:0;p=(g&65280|0)==0;g=Te(w,(p?o:o|8)+(d[2511+(p?g:g>>>8)>>0]|0)|0)|0;c[f+2420>>2]=g;p=c[t>>2]|0;if(g>>>0>=(R(c[p+13132>>2]|0,c[p+13128>>2]|0)|0)>>>0){g=-1094995529;break a}if(a[s>>0]|0){g=f+156|0;if(!(a[g>>0]|0)){g=-1094995529;break a}else{p=g;break}}else{c[f+2424>>2]=g;p=f+5824|0;c[p>>2]=(c[p>>2]|0)+1;p=f+156|0;r=31;break}}else{c[f+2424>>2]=0;c[f+2420>>2]=0;c[f+5824>>2]=0;p=f+156|0;a[p>>0]=0;r=31}while(0);if((r|0)==31){a[p>>0]=0;if((c[(c[u>>2]|0)+1624>>2]|0)>0){g=0;do{Ve(w,1);g=g+1|0}while((g|0)<(c[(c[u>>2]|0)+1624>>2]|0))}g=Ye(w)|0;o=f+2428|0;c[o>>2]=g;if(g>>>0>=3){g=-1094995529;break}if(!((g|0)==2?1:(c[q>>2]&-8|0)!=16)){g=-1094995529;break}g=f+2438|0;a[g>>0]=1;if(a[(c[u>>2]|0)+39>>0]|0)a[g>>0]=We(w)|0;if(a[(c[t>>2]|0)+8>>0]|0)a[f+2439>>0]=Te(w,2)|0;if(((c[q>>2]|0)+-19|0)>>>0<2){c[f+2608>>2]=0;c[f+5816>>2]=0}else{g=Te(w,c[(c[t>>2]|0)+64>>2]|0)|0;c[f+2432>>2]=g;g=id(f,g)|0;h=f+5816|0;if((a[n>>0]|0)==0?(m=c[h>>2]|0,(g|0)!=(m|0)):0)if(!(c[(c[i>>2]|0)+688>>2]&8))g=m;else{g=-1094995529;break}c[h>>2]=g;if(!(We(w)|0)){h=f+2440|0;g=he(f,h,c[t>>2]|0,1)|0;if((g|0)<0)break;else g=h}else{h=c[t>>2]|0;g=c[h+2184>>2]|0;if(!g){g=-1094995529;break}m=(g<<1)+-2|0;g=m>>>0>65535;m=g?m>>>16:m;g=g?16:0;n=(m&65280|0)==0;g=(d[2511+(n?m:m>>>8)>>0]|0)+(n?g:g|8)|0;if(!g){g=h;h=0}else{h=Te(w,g)|0;g=c[t>>2]|0}g=g+2188+(h*168|0)|0}c[f+2608>>2]=g;if((Kc(f,f+2612|0,w)|0)<0?c[(c[i>>2]|0)+688>>2]&8|0:0){g=-1094995529;break}if(!(a[(c[t>>2]|0)+13060>>0]|0))g=0;else g=(We(w)|0)&255;a[f+3035>>0]=g}b:do if(!(c[f+3504>>2]|0)){switch(c[q>>2]|0){case 9:case 8:case 7:case 6:case 4:case 2:case 0:break b;default:{}}c[f+5820>>2]=c[f+5816>>2]}while(0);do if(a[(c[t>>2]|0)+12941>>0]|0){a[f+3044>>0]=We(w)|0;if(!(c[(c[t>>2]|0)+4>>2]|0)){a[f+3045>>0]=0;a[f+3046>>0]=0;break}else{q=(We(w)|0)&255;a[f+3046>>0]=q;a[f+3045>>0]=q;break}}else{a[f+3044>>0]=0;a[f+3045>>0]=0;a[f+3046>>0]=0}while(0);l=f+3040|0;c[l>>2]=0;k=f+3036|0;c[k>>2]=0;g=c[o>>2]|0;if(g>>>0<2){h=c[u>>2]|0;c[k>>2]=c[h+8>>2];if(!g)c[l>>2]=c[h+12>>2];do if(!(We(w)|0))r=69;else{g=(Ye(w)|0)+1|0;c[k>>2]=g;if(c[o>>2]|0)break;c[l>>2]=(Ye(w)|0)+1;r=69}while(0);if((r|0)==69)g=c[k>>2]|0;if(g>>>0>16){g=-1094995529;break}if((c[l>>2]|0)>>>0>16){g=-1094995529;break}g=f+3032|0;a[g>>0]=0;i=f+3033|0;a[i>>0]=0;j=jd(f)|0;if(!j){g=-1094995529;break}do if((j|0)>1?(a[(c[u>>2]|0)+1617>>0]|0)!=0:0){q=(We(w)|0)&255;a[g>>0]=q;do if(q<<24>>24){if(!(c[k>>2]|0))break;q=(j<<1)+-2|0;h=q>>>0>65535;q=h?q>>>16:q;h=h?16:0;g=(q&65280|0)==0;h=(d[2511+(g?q:q>>>8)>>0]|0)+(g?h:h|8)|0;g=0;do{c[f+2776+(g<<2)>>2]=Te(w,h)|0;g=g+1|0}while(g>>>0<(c[k>>2]|0)>>>0)}while(0);if(c[o>>2]|0)break;r=We(w)|0;a[i>>0]=r;if((r&255|0)!=1){r=83;break}if(!(c[l>>2]|0)){r=83;break}r=(j<<1)+-2|0;h=r>>>0>65535;r=h?r>>>16:r;h=h?16:0;g=(r&65280|0)==0;h=(d[2511+(g?r:r>>>8)>>0]|0)+(g?h:h|8)|0;g=0;do{c[f+2904+(g<<2)>>2]=Te(w,h)|0;g=g+1|0}while(g>>>0<(c[l>>2]|0)>>>0);r=83}else r=83;while(0);do if((r|0)==83){if(c[o>>2]|0)break;a[f+3047>>0]=We(w)|0}while(0);if(!(a[(c[u>>2]|0)+5>>0]|0))g=0;else g=(We(w)|0)&255;a[f+3048>>0]=g;g=f+3052|0;c[g>>2]=0;do if(a[f+3035>>0]|0){h=f+3051|0;a[h>>0]=0;if(!(c[o>>2]|0)){i=(We(w)|0)==0&1;a[h>>0]=i}else i=0;if((c[f+3036+((i&255)<<2)>>2]|0)>>>0<=1)break;r=Ye(w)|0;c[g>>2]=r;if(r>>>0>=(c[f+3036+(d[h>>0]<<2)>>2]|0)>>>0){g=-1094995529;break a}}while(0);g=c[u>>2]|0;if((a[g+37>>0]|0)!=0?(c[o>>2]|0)==1:0)r=96;else r=94;do if((r|0)==94){if(!(a[g+38>>0]|0))break;if(!(c[o>>2]|0))r=96}while(0);if((r|0)==96)Lc(f,w);q=5-(Ye(w)|0)|0;c[f+3080>>2]=q;if((q+-1|0)>>>0>4){g=-1094995529;break}}c[f+3056>>2]=Mc(w)|0;g=c[u>>2]|0;if(!(a[g+36>>0]|0)){c[f+3060>>2]=0;h=0}else{c[f+3060>>2]=Mc(w)|0;h=Mc(w)|0;g=c[u>>2]|0}c[f+3064>>2]=h;if(!(a[g+1631>>0]|0))h=0;else{h=(We(w)|0)&255;g=c[u>>2]|0}a[f+3068>>0]=h;c:do if(!(a[g+55>>0]|0)){a[f+3049>>0]=0;c[f+3072>>2]=0;g=0;r=111}else{do if(a[g+56>>0]|0){if(!(We(w)|0)){g=c[u>>2]|0;break}q=(We(w)|0)&255;a[f+3049>>0]=q;if(q<<24>>24)break c;c[f+3072>>2]=(Mc(w)|0)<<1;g=(Mc(w)|0)<<1;r=111;break c}while(0);a[f+3049>>0]=a[g+57>>0]|0;c[f+3072>>2]=c[g+60>>2];g=c[g+64>>2]|0;r=111}while(0);if((r|0)==111)c[f+3076>>2]=g;g=a[(c[u>>2]|0)+54>>0]|0;d:do if(!(g<<24>>24))g=0;else{do if(!(a[f+3044>>0]|0)){if(a[f+3045>>0]|0)break;if(a[f+3049>>0]|0)break d}while(0);g=(We(w)|0)&255}while(0);a[f+3050>>0]=g}o=f+3096|0;c[o>>2]=0;q=c[u>>2]|0;if(!((a[q+42>>0]|0)==0?!(a[q+43>>0]|0):0))r=121;e:do if((r|0)==121){r=Ye(w)|0;c[o>>2]=r;if((r|0)<=0){c[f+7620>>2]=0;break}k=(Ye(w)|0)+1|0;j=k>>4;k=k&15;l=f+3084|0;hf(l);r=f+3088|0;hf(r);n=f+3092|0;hf(n);c[l>>2]=of(c[o>>2]|0,4)|0;c[r>>2]=of(c[o>>2]|0,4)|0;q=of(c[o>>2]|0,4)|0;c[n>>2]=q;if(c[l>>2]|0?!((q|0)==0|(c[r>>2]|0)==0):0){if((c[o>>2]|0)>0){m=(j|0)>0;n=(k|0)==0;i=0;do{if(m){g=0;h=0;do{g=(Te(w,16)|0)+(g<<16)|0;h=h+1|0}while((h|0)!=(j|0))}else g=0;if(!n)g=(Te(w,k)|0)+(g<>2]|0)+(i<<2)>>2]=g+1;i=i+1|0}while((i|0)<(c[o>>2]|0))}g=f+141|0;do if((d[g>>0]|0)>1){r=c[u>>2]|0;if((c[r+48>>2]|0)<=1?(c[r+44>>2]|0)<=1:0)break;c[f+7620>>2]=0;a[g>>0]=1;break e}while(0);c[f+7620>>2]=0;break}c[o>>2]=0;g=-12;break a}while(0);if(a[(c[u>>2]|0)+1628>>0]|0){h=Ye(w)|0;q=bh(h|0,0,3)|0;n=C;r=Nc(w)|0;o=((r|0)<0)<<31>>31;if((n|0)>(o|0)|(n|0)==(o|0)&q>>>0>r>>>0){g=-1094995529;break}if(h|0){g=0;do{Ve(w,8);g=g+1|0}while((g|0)!=(h|0))}}h=c[u>>2]|0;u=(c[h+16>>2]|0)+26+(c[f+3056>>2]|0)|0;i=u&255;a[f+3100>>0]=i;u=u<<24;if((u|0)<=855638016?(u>>24|0)>=(0-(c[(c[t>>2]|0)+13192>>2]|0)|0):0){u=c[f+2420>>2]|0;c[f+3488>>2]=u;if((u|0)==0?a[s>>0]|0:0){g=-1094995529;break}if((Nc(w)|0)>=0){g=c[v>>2]|0;a[g+203>>0]=(a[s>>0]|0)==0&1;if(!(a[h+22>>0]|0))a[g+272>>0]=i;a[p>>0]=1;a[g+302>>0]=0;a[g+303>>0]=0;g=0}else g=-1094995529}else g=-1094995529}else g=-1094995529;while(0);return g|0}function pc(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=c[b+136>>2]|0;e=b+200|0;i=c[e>>2]|0;g=c[i+13064>>2]|0;f=c[i+13120>>2]>>g;g=(c[i+13124>>2]>>g)+1|0;i=b+5840|0;j=b+5844|0;ah(c[b+7572>>2]|0,0,R(c[j>>2]|0,c[i>>2]|0)|0)|0;ah(c[b+7576>>2]|0,0,R(c[j>>2]|0,c[i>>2]|0)|0)|0;i=c[e>>2]|0;ah(c[b+7596>>2]|0,0,R(c[i+13152>>2]|0,c[i+13148>>2]|0)|0)|0;i=c[e>>2]|0;ah(c[b+7600>>2]|0,0,R((c[i+13160>>2]|0)+1|0,(c[i+13156>>2]|0)+1|0)|0)|0;ah(c[b+7580>>2]|0,-1,R((f<<2)+4|0,g)|0)|0;c[b+5848>>2]=0;g=b+3500|0;c[b+7668>>2]=c[g>>2];f=c[b+204>>2]|0;if(a[f+42>>0]|0)c[d+312>>2]=c[c[f+1648>>2]>>2]<>2]|0)+13080>>2];e=b+160|0;d=Zc(b,e,c[b+5816>>2]|0)|0;if((d|0)>=0){d=dd(b)|0;if((d|0)>=0){j=(c[g>>2]&-8|0)==16;c[(c[c[b+3508>>2]>>2]|0)+80>>2]=j&1;c[(c[e>>2]|0)+84>>2]=3-(c[b+2428>>2]|0);if(!j)ad(b);d=b+164|0;Pf(c[d>>2]|0);d=$c(b,c[d>>2]|0,0)|0;if((d|0)<0)h=9;else d=0}else h=9}else h=9;if((h|0)==9){e=b+3508|0;c[e>>2]=0}return d|0}function qc(a){a=a|0;var b=0,d=0,e=0;d=l;l=l+16|0;e=d+8|0;b=d;c[e>>2]=0;c[e+4>>2]=1;a=c[a+4>>2]|0;za[c[a+816>>2]&1](a,1,e,b,1,4)|0;l=d;return c[b>>2]|0}function rc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=c[b+60>>2]|0;p=r+200|0;h=c[p>>2]|0;s=1<>2];q=r+204|0;d=c[q>>2]|0;b=c[(c[d+1668>>2]|0)+(c[r+3488>>2]<<2)>>2]|0;e=(a[r+2437>>0]|0)==0;do if((b|0)!=0|e){if(!e?(c[(c[r+7580>>2]|0)+(c[(c[d+1672>>2]|0)+(b+-1<<2)>>2]<<2)>>2]|0)!=(c[r+2424>>2]|0):0){b=-1094995529;break}j=s+-1|0;k=r+3072|0;l=r+3496|0;m=r+3076|0;n=r+3050|0;o=r+7604|0;g=0;f=0;e=h;d=c[h+13120>>2]|0;do{if((b|0)>=(c[e+13136>>2]|0))break;h=c[(c[(c[q>>2]|0)+1672>>2]|0)+(b<<2)>>2]|0;g=c[e+13080>>2]|0;i=j+d>>g;f=((h|0)%(i|0)|0)<>2]|0)+13080>>2]|0;tc(r,f>>i,g>>i);i=c[l>>2]|0;c[i+(h<<3)>>2]=c[k>>2];c[i+(h<<3)+4>>2]=c[m>>2];a[(c[o>>2]|0)+h>>0]=a[n>>0]|0;i=uc(r,f,g,c[(c[p>>2]|0)+13080>>2]|0,0)|0;if((i|0)<0){t=8;break}b=b+1|0;Ra(r,b);dc(r,f,g,s);e=c[p>>2]|0;d=c[e+13120>>2]|0}while((i|0)!=0);if((t|0)==8){c[(c[r+7580>>2]|0)+(h<<2)>>2]=-1;b=i;break}if((f+s|0)>=(d|0)?(g+s|0)>=(c[e+13124>>2]|0):0)Ub(r,f,g,s)}else b=-1094995529;while(0);return b|0}function sc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=c[b+136>>2]|0;k=c[b+200>>2]|0;g=k+13080|0;h=1<>2];l=c[b+204>>2]|0;m=c[(c[l+1672>>2]|0)+(f<<2)>>2]|0;p=c[b+2424>>2]|0;n=m-p|0;i=c[b+7580>>2]|0;j=i+(m<<2)|0;c[j>>2]=p;do if(!(a[l+43>>0]|0)){b=a[l+42>>0]|0;if(!(b<<24>>24)){c[o+312>>2]=c[k+13120>>2];b=0;break}if((f|0)!=0?(p=c[l+1676>>2]|0,(c[p+(f<<2)>>2]|0)!=(c[p+(f+-1<<2)>>2]|0)):0){p=c[g>>2]|0;c[o+312>>2]=(c[(c[l+1648>>2]|0)+(c[(c[l+1664>>2]|0)+(d>>p<<2)>>2]<<2)>>2]<>0]=1}}else{if((d|0)==0?(h+-1&e|0)==0:0)a[o+203>>0]=1;c[o+312>>2]=c[k+13120>>2];b=a[l+42>>0]|0}while(0);h=h+e|0;p=c[k+13124>>2]|0;c[o+316>>2]=(h|0)>(p|0)?p:h;h=o+31312|0;c[h>>2]=0;if(!(b<<24>>24)){if(!n){c[h>>2]=1;b=1}else b=0;if((n|0)<(c[k+13128>>2]|0)){b=b|4;c[h>>2]=b}}else{if((d|0)>0){p=c[l+1676>>2]|0;g=m+-1|0;if((c[p+(f<<2)>>2]|0)==(c[p+(c[(c[l+1668>>2]|0)+(g<<2)>>2]<<2)>>2]|0))b=0;else{c[h>>2]=2;b=2}if((c[j>>2]|0)!=(c[i+(g<<2)>>2]|0)){b=b|1;c[h>>2]=b}}else b=0;if((e|0)>0){p=c[l+1676>>2]|0;g=m-(c[k+13128>>2]|0)|0;if((c[p+(f<<2)>>2]|0)!=(c[p+(c[(c[l+1668>>2]|0)+(g<<2)>>2]<<2)>>2]|0)){b=b|8;c[h>>2]=b}if((c[j>>2]|0)!=(c[i+(g<<2)>>2]|0)){b=b|4;c[h>>2]=b}}}h=(d|0)>0;if(h&(n|0)>0)g=(b>>>1&1^1)&255;else g=0;a[o+308>>0]=g;if((e|0)>0){g=c[k+13128>>2]|0;if((n|0)<(g|0))b=0;else b=(b>>>3&1^1)&255;a[o+309>>0]=b;if((n+1|0)<(g|0))b=0;else{b=c[l+1676>>2]|0;b=(c[b+(f<<2)>>2]|0)==(c[b+(c[(c[l+1668>>2]|0)+(m+1-g<<2)>>2]<<2)>>2]|0)&1}a[o+310>>0]=b;if(h&(n|0)>(g|0)){b=c[l+1676>>2]|0;b=(c[b+(f<<2)>>2]|0)==(c[b+(c[(c[l+1668>>2]|0)+(m+-1-g<<2)>>2]<<2)>>2]|0)&1}else b=0}else{a[o+309>>0]=0;a[o+310>>0]=0;b=0}a[o+311>>0]=b;return}function tc(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;h=c[e+136>>2]|0;B=e+3492|0;C=c[B>>2]|0;D=e+200|0;A=(R(c[(c[D>>2]|0)+13128>>2]|0,g)|0)+f|0;if((a[e+3044>>0]|0)==0?(a[e+3045>>0]|0)==0:0){h=0;i=0}else{if((f|0)>0?(a[h+308>>0]|0)!=0:0)i=Ya(e)|0;else i=0;if(!((g|0)<1|(i|0)!=0))if(!(a[h+309>>0]|0)){h=0;i=0}else{h=Ya(e)|0;i=0}else h=0}t=c[(c[D>>2]|0)+4>>2]|0?3:1;u=e+204|0;v=C+(A*148|0)+143|0;w=C+(A*148|0)+144|0;x=C+(A*148|0)+104|0;y=C+(A*148|0)+108|0;z=(h|0)==0;s=(i|h|0)==0;o=(i|0)==0;p=g+-1|0;q=f+-1|0;m=C+(A*148|0)+144|0;l=0;do{r=c[u>>2]|0;r=d[((l|0)==0?r+1644|0:r+1645|0)>>0]|0;if(a[e+3044+l>>0]|0){j=(l|0)==2;do if(j){h=a[v>>0]|0;a[w>>0]=h;c[y>>2]=c[x>>2];n=m}else{if(s){h=(_a(e)|0)&255;n=C+(A*148|0)+142+l|0;a[n>>0]=h;break}if(!o){h=a[(c[B>>2]|0)+((q+(R(c[(c[D>>2]|0)+13128>>2]|0,g)|0)|0)*148|0)+142+l>>0]|0;n=C+(A*148|0)+142+l|0;a[n>>0]=h;break}if(z)h=0;else h=a[(c[B>>2]|0)+(((R(c[(c[D>>2]|0)+13128>>2]|0,p)|0)+f|0)*148|0)+142+l>>0]|0;n=C+(A*148|0)+142+l|0;a[n>>0]=h}while(0);if(h<<24>>24){h=0;do{do if(!s){if(!o){i=c[(c[B>>2]|0)+((q+(R(c[(c[D>>2]|0)+13128>>2]|0,g)|0)|0)*148|0)+(l<<4)+(h<<2)>>2]|0;break}if(z)i=0;else i=c[(c[B>>2]|0)+(((R(c[(c[D>>2]|0)+13128>>2]|0,p)|0)+f|0)*148|0)+(l<<4)+(h<<2)>>2]|0}else i=bb(e)|0;while(0);c[C+(A*148|0)+(l<<4)+(h<<2)>>2]=i;h=h+1|0}while((h|0)!=4);do if((a[n>>0]|0)!=1){if(!j){if(s){c[C+(A*148|0)+100+(l<<2)>>2]=db(e)|0;break}if(!o){c[C+(A*148|0)+100+(l<<2)>>2]=c[(c[B>>2]|0)+((q+(R(c[(c[D>>2]|0)+13128>>2]|0,g)|0)|0)*148|0)+100+(l<<2)>>2];break}if(z)h=0;else h=c[(c[B>>2]|0)+(((R(c[(c[D>>2]|0)+13128>>2]|0,p)|0)+f|0)*148|0)+100+(l<<2)>>2]|0;c[C+(A*148|0)+100+(l<<2)>>2]=h}}else{h=0;do{do if(c[C+(A*148|0)+(l<<4)+(h<<2)>>2]|0){if(s){i=cb(e)|0;break}if(!o){i=c[(c[B>>2]|0)+((q+(R(c[(c[D>>2]|0)+13128>>2]|0,g)|0)|0)*148|0)+48+(l<<4)+(h<<2)>>2]|0;break}if(!z)i=c[(c[B>>2]|0)+(((R(c[(c[D>>2]|0)+13128>>2]|0,p)|0)+f|0)*148|0)+48+(l<<4)+(h<<2)>>2]|0;else i=0}else i=0;while(0);c[C+(A*148|0)+48+(l<<4)+(h<<2)>>2]=i;h=h+1|0}while((h|0)!=4);if(s){a[C+(A*148|0)+96+l>>0]=ab(e)|0;break}if(!o){a[C+(A*148|0)+96+l>>0]=a[(c[B>>2]|0)+((q+(R(c[(c[D>>2]|0)+13128>>2]|0,g)|0)|0)*148|0)+96+l>>0]|0;break}if(z)h=0;else h=a[(c[B>>2]|0)+(((R(c[(c[D>>2]|0)+13128>>2]|0,p)|0)+f|0)*148|0)+96+l>>0]|0;a[C+(A*148|0)+96+l>>0]=h}while(0);b[C+(A*148|0)+112+(l*10|0)>>1]=0;j=0;do{h=c[C+(A*148|0)+(l<<4)+(j<<2)>>2]|0;i=j;j=j+1|0;k=C+(A*148|0)+112+(l*10|0)+(j<<1)|0;b[k>>1]=h;if((a[n>>0]|0)==2){if((i|0)>1){h=0-h|0;b[k>>1]=h}}else if(c[C+(A*148|0)+48+(l<<4)+(i<<2)>>2]|0){h=0-h|0;b[k>>1]=h}b[k>>1]=h<<16>>16<>0]=0;l=l+1|0}while((l|0)<(t|0));return}function uc(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;p=c[b+136>>2]|0;s=1<>2]|0;k=b+204|0;i=c[k>>2]|0;o=(1<<(c[j+13080>>2]|0)-(c[i+24>>2]|0))+-1|0;c[p+31232>>2]=h;r=s+e|0;if(((r|0)<=(c[j+13120>>2]|0)?(s+f|0)<=(c[j+13124>>2]|0):0)?(c[j+13064>>2]|0)>>>0>>0:0){j=mb(b,h,e,f)|0;i=c[k>>2]|0}else j=(c[j+13064>>2]|0)>>>0>>0&1;if(a[i+22>>0]|0?((c[(c[q>>2]|0)+13080>>2]|0)-(c[i+24>>2]|0)|0)>>>0<=g>>>0:0){a[p+300>>0]=0;c[p+280>>2]=0}if(a[b+3068>>0]|0?((c[(c[q>>2]|0)+13080>>2]|0)-(d[i+1632>>0]|0)|0)>>>0<=g>>>0:0)a[p+301>>0]=0;a:do if(!j){i=vc(b,e,f,g)|0;if((i|0)>=0){i=c[q>>2]|0;j=1<>2];if((r|0)%(j|0)|0|0?(r|0)<(c[i+13120>>2]|0):0){i=1;break}s=s+f|0;if((s|0)%(j|0)|0|0?(s|0)<(c[i+13124>>2]|0):0){i=1;break}i=(eb(b)|0)==0&1}}else{l=s>>1;m=l+e|0;n=l+f|0;g=g+-1|0;k=h+1|0;i=uc(b,e,f,g,k)|0;if((i|0)>=0){do if(i){j=c[q>>2]|0;if((m|0)<(c[j+13120>>2]|0)){i=uc(b,m,f,g,k)|0;if((i|0)<0)break a;if(!i){i=0;break}j=c[q>>2]|0}if((n|0)<(c[j+13124>>2]|0)){i=uc(b,e,n,g,k)|0;if((i|0)<0)break a;if(!i){i=0;break}j=c[q>>2]|0}if((m|0)<(c[j+13120>>2]|0)?(n|0)<(c[j+13124>>2]|0):0){i=uc(b,m,n,g,k)|0;if((i|0)<0)break a}}else i=0;while(0);if((o&r|0)==0?(o&s+f|0)==0:0)c[p+276>>2]=a[p+272>>0];if(!i)i=0;else{i=c[q>>2]|0;if((m+l|0)<(c[i+13120>>2]|0))i=1;else i=(n+l|0)<(c[i+13124>>2]|0);i=i&1}}}while(0);return i|0}function vc(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;z=c[b+136>>2]|0;C=b+200|0;x=c[C>>2]|0;w=c[x+13064>>2]|0;v=c[x+13140>>2]|0;h=e>>w;i=f>>w;t=b+204|0;x=1<<(c[x+13080>>2]|0)-(c[(c[t>>2]|0)+24>>2]|0);c[z+31236>>2]=e;c[z+31240>>2]=f;o=z+31252|0;a[o>>0]=1;r=z+31244|0;c[r>>2]=1;p=z+31248|0;c[p>>2]=0;s=z+31254|0;a[s>>0]=0;q=z+31253|0;a[q>>0]=0;l=b+7584|0;u=(R(i,v)|0)+h|0;a[(c[l>>2]|0)+u>>0]=0;y=z+31268|0;a[y>>0]=1;a[y+1>>0]=1;a[y+2>>0]=1;a[y+3>>0]=1;y=1<>w;x=x+-1|0;if(a[(c[t>>2]|0)+40>>0]|0){m=(fb(b)|0)&255;a[z+31256>>0]=m;if(m<<24>>24)wc(b,e,f,g)}else a[z+31256>>0]=0;m=b+2428|0;if((c[m>>2]|0)==2){if((w|0)>0){h=0;i=u;while(1){ah((c[l>>2]|0)+i|0,0,w|0)|0;h=h+1|0;if((h|0)==(w|0))break;else i=i+v|0}}}else{j=gb(b,e,f,h,i)|0;k=j&255;if((w|0)>0){h=0;i=u;while(1){ah((c[l>>2]|0)+i|0,k|0,w|0)|0;h=h+1|0;if((h|0)==(w|0))break;else i=i+v|0}}c[r>>2]=j&255|0?2:0}a:do if(!(a[(c[l>>2]|0)+u>>0]|0)){if((c[m>>2]|0)==2)h=c[r>>2]|0;else{h=lb(b)|0;c[r>>2]=h}if((h|0)==1?(c[(c[C>>2]|0)+13064>>2]|0)!=(g|0):0)i=20;else i=19;b:do if((i|0)==19){l=nb(b,g)|0;c[p>>2]=l;m=c[r>>2]|0;a[s>>0]=(l|0)==3&(m|0)==1&1;if((m|0)==1)i=20;else{yc(b,e,f,g);switch(c[p>>2]|0){case 0:{xc(b,e,f,y,y,g,0);break b}case 1:{n=(y|0)/2|0;xc(b,e,f,y,n,g,0);xc(b,e,n+f|0,y,n,g,1);break b}case 2:{n=(y|0)/2|0;xc(b,e,f,n,y,g,0);xc(b,n+e|0,f,n,y,g,1);break b}case 4:{n=(y|0)/4|0;xc(b,e,f,y,n,g,0);xc(b,e,n+f|0,y,(3<>2]|0)==0?(n=c[C>>2]|0,(c[n+68>>2]|0)!=0):0)?(c[n+13048>>2]|0)>>>0<=g>>>0:0)?(c[n+13052>>2]|0)>>>0>=g>>>0:0){h=(ob(b)|0)&255;a[q>>0]=h}else h=a[q>>0]|0;if(!(h<<24>>24)){Ac(b,e,f,g);break}yc(b,e,f,g);h=zc(b,e,f,g)|0;if(a[(c[C>>2]|0)+13056>>0]|0)wc(b,e,f,g);if((h|0)<0)break a}while(0);if(!(a[q>>0]|0)){do if((c[r>>2]|0)==1)i=45;else{if((c[p>>2]|0)==0?a[z+31276>>0]|0:0){i=45;break}h=(yb(b)|0)&255;a[o>>0]=h}while(0);if((i|0)==45)h=a[o>>0]|0;if(!(h<<24>>24)){if(a[b+3049>>0]|0){i=53;break}Sb(b,e,f,g);i=53;break}h=c[C>>2]|0;if((c[r>>2]|0)==1)h=(d[s>>0]|0)+(c[h+13092>>2]|0)|0;else h=c[h+13088>>2]|0;a[z+31255>>0]=h;h=Bc(b,e,f,e,f,e,f,g,g,0,0,2768,2768)|0;if((h|0)>=0)i=53}else i=53}else{xc(b,e,f,y,y,g,0);yc(b,e,f,g);if(!(a[b+3049>>0]|0)){Sb(b,e,f,g);i=53}else i=53}while(0);if((i|0)==53){if(a[(c[t>>2]|0)+22>>0]|0?(a[z+300>>0]|0)==0:0)Qb(b,e,f,g);if((w|0)>0){j=b+7568|0;k=z+272|0;i=0;h=u;while(1){ah((c[j>>2]|0)+h|0,a[k>>0]|0,w|0)|0;i=i+1|0;if((i|0)==(w|0))break;else h=h+v|0}}if((x&y+e|0)==0?(x&y+f|0)==0:0)c[z+276>>2]=a[z+272>>0];h=c[C>>2]|0;i=c[h+13064>>2]|0;k=y>>i;j=e>>i;i=f>>i;if((k|0)>0?(A=b+7588|0,B=c[z+31232>>2]&255,ah((c[A>>2]|0)+((R(c[h+13140>>2]|0,i)|0)+j)|0,B|0,k|0)|0,(k|0)!=1):0){h=1;do{ah((c[A>>2]|0)+((R(c[(c[C>>2]|0)+13140>>2]|0,h+i|0)|0)+j)|0,B|0,k|0)|0;h=h+1|0}while((h|0)!=(k|0));h=0}else h=0}return h|0}function wc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;k=1<>2]|0;h=c[j+13084>>2]|0;l=c[j+13156>>2]|0;f=k+d|0;g=c[j+13120>>2]|0;k=k+e|0;j=c[j+13124>>2]|0;e=e>>h;k=((k|0)>(j|0)?j:k)>>h;if((e|0)<(k|0)){j=d>>h;h=((f|0)>(g|0)?g:f)>>h;i=(j|0)<(h|0);g=b+7600|0;do{if(i){d=R(e,l)|0;f=j;do{a[(c[g>>2]|0)+(f+d)>>0]=2;f=f+1|0}while((f|0)!=(h|0))}e=e+1|0}while((e|0)!=(k|0))}return}function xc(f,g,h,i,j,k,m){f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=l;l=l+16|0;A=B;q=c[f+136>>2]|0;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;v=f+200|0;o=c[v>>2]|0;r=c[o+13156>>2]|0;u=c[f+3508>>2]|0;s=c[u+16>>2]|0;u=c[u+20>>2]|0;x=f+160|0;n=c[x>>2]|0;w=R(h>>c[o+13180>>2],c[n+32>>2]|0)|0;p=c[o+56>>2]|0;w=(c[n>>2]|0)+((g>>c[o+13168>>2]<>c[o+13184>>2],c[n+36>>2]|0)|0;y=(c[n+4>>2]|0)+((g>>c[o+13172>>2]<>c[o+13188>>2],c[n+40>>2]|0)|0;z=(c[n+8>>2]|0)+((g>>c[o+13176>>2]<>2]|0;a:do if(!(a[(c[f+7584>>2]|0)+((R(h>>p,c[o+13140>>2]|0)|0)+(g>>p))>>0]|0)){p=(ub(f)|0)&255;a[q+31276>>0]=p;if(p<<24>>24){if((c[f+3080>>2]|0)>>>0>1)n=tb(f)|0;else n=0;$d(f,g,h,i,j,k,m,n,A);n=c[(c[v>>2]|0)+13084>>2]|0;k=g>>n;m=h>>n;if((j>>n|0)>0)q=0;else break;while(1){if((i>>n|0)>0){p=(R(q+m|0,r)|0)+k|0;o=0;do{n=s+((p+o|0)*12|0)|0;c[n>>2]=c[A>>2];c[n+4>>2]=c[A+4>>2];c[n+8>>2]=c[A+8>>2];o=o+1|0;n=c[(c[v>>2]|0)+13084>>2]|0}while((o|0)<(i>>n|0))}q=q+1|0;if((q|0)>=(j>>n|0))break a}}_d(f,g,h,i,j);p=A+10|0;a[p>>0]=0;if(!(c[f+2428>>2]|0)){n=vb(f,i,j)|0;if((n|0)==1){n=1;t=22}else t=19}else{n=0;t=19}if((t|0)==19){o=c[f+3036>>2]|0;if(o|0)a[A+8>>0]=wb(f,o)|0;a[p>>0]=1;Ib(f,g,h,0);ee(f,g,h,i,j,k,m,0,A,xb(f)|0,0);b[A>>1]=(e[A>>1]|0)+(e[q+31272>>1]|0);o=A+2|0;b[o>>1]=(e[o>>1]|0)+(e[q+31274>>1]|0);if(n|0)t=22}if((t|0)==22){o=c[f+3040>>2]|0;if(o|0)a[A+9>>0]=wb(f,o)|0;if((n|0)==2&(a[f+3047>>0]|0)==1)c[q+31272>>2]=0;else Ib(f,g,h,1);a[p>>0]=(d[p>>0]|0)+2;ee(f,g,h,i,j,k,m,0,A,xb(f)|0,1);m=A+4|0;b[m>>1]=(e[m>>1]|0)+(e[q+31272>>1]|0);m=A+6|0;b[m>>1]=(e[m>>1]|0)+(e[q+31274>>1]|0)}n=c[(c[v>>2]|0)+13084>>2]|0;k=g>>n;m=h>>n;if((j>>n|0)>0){q=0;do{if((i>>n|0)>0){p=(R(q+m|0,r)|0)+k|0;o=0;do{n=s+((p+o|0)*12|0)|0;c[n>>2]=c[A>>2];c[n+4>>2]=c[A+4>>2];c[n+8>>2]=c[A+8>>2];o=o+1|0;n=c[(c[v>>2]|0)+13084>>2]|0}while((o|0)<(i>>n|0))}q=q+1|0}while((q|0)<(j>>n|0))}}else{if((c[f+3080>>2]|0)>>>0>1)n=tb(f)|0;else n=0;q=1<>2]|0)+13084>>2]|0;k=g>>n;m=h>>n;if((j>>n|0)>0){q=0;do{if((i>>n|0)>0){p=(R(q+m|0,r)|0)+k|0;o=0;do{n=s+((p+o|0)*12|0)|0;c[n>>2]=c[A>>2];c[n+4>>2]=c[A+4>>2];c[n+8>>2]=c[A+8>>2];o=o+1|0;n=c[(c[v>>2]|0)+13084>>2]|0}while((o|0)<(i>>n|0))}q=q+1|0}while((q|0)<(j>>n|0))}}while(0);q=a[A+10>>0]|0;o=q<<24>>24;if(o&1){n=c[u+(a[A+8>>0]<<2)>>2]|0;if(n|0){k=n;t=35}}else{k=0;t=35}b:do if((t|0)==35){if(o&2){n=c[u+196+(a[A+9>>0]<<2)>>2]|0;if(!n)break;else p=n}else p=0;switch(q<<24>>24){case 1:{o=A+8|0;n=a[o>>0]|0;Hc(f,w,c[(c[x>>2]|0)+32>>2]|0,c[k>>2]|0,A,g,h,i,j,b[f+3104+(n<<1)>>1]|0,b[f+3296+(n<<1)>>1]|0);n=c[v>>2]|0;if(!(c[n+4>>2]|0))break b;w=c[n+13172>>2]|0;g=g>>w;v=c[n+13184>>2]|0;h=h>>v;i=i>>w;j=j>>v;v=c[k>>2]|0;w=a[o>>0]|0;Ic(f,y,c[(c[x>>2]|0)+36>>2]|0,c[v+4>>2]|0,c[v+36>>2]|0,0,g,h,i,j,A,b[f+3136+(w<<2)>>1]|0,b[f+3328+(w<<2)>>1]|0);w=c[k>>2]|0;y=a[o>>0]|0;Ic(f,z,c[(c[x>>2]|0)+40>>2]|0,c[w+8>>2]|0,c[w+40>>2]|0,0,g,h,i,j,A,b[f+3136+(y<<2)+2>>1]|0,b[f+3328+(y<<2)+2>>1]|0);break b}case 2:{o=A+9|0;n=a[o>>0]|0;Hc(f,w,c[(c[x>>2]|0)+32>>2]|0,c[p>>2]|0,A+4|0,g,h,i,j,b[f+3264+(n<<1)>>1]|0,b[f+3392+(n<<1)>>1]|0);n=c[v>>2]|0;if(!(c[n+4>>2]|0))break b;w=c[n+13172>>2]|0;g=g>>w;v=c[n+13184>>2]|0;h=h>>v;i=i>>w;j=j>>v;v=c[p>>2]|0;w=a[o>>0]|0;Ic(f,y,c[(c[x>>2]|0)+36>>2]|0,c[v+4>>2]|0,c[v+36>>2]|0,1,g,h,i,j,A,b[f+3200+(w<<2)>>1]|0,b[f+3424+(w<<2)>>1]|0);w=c[p>>2]|0;y=a[o>>0]|0;Ic(f,z,c[(c[x>>2]|0)+40>>2]|0,c[w+8>>2]|0,c[w+40>>2]|0,1,g,h,i,j,A,b[f+3200+(y<<2)+2>>1]|0,b[f+3424+(y<<2)+2>>1]|0);break b}case 3:{ra();break}default:break b}}while(0);l=B;return}function yc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;i=c[b+136>>2]|0;k=c[b+200>>2]|0;h=c[k+13084>>2]|0;g=1<>h;k=c[k+13156>>2]|0;l=c[(c[b+3508>>2]|0)+16>>2]|0;j=d>>h;h=e>>h;g=(g|0)==0?1:g;e=(g|0)>0;if(e){d=b+7592|0;f=0;do{ah((c[d>>2]|0)+((R(f+h|0,k)|0)+j)|0,1,g|0)|0;f=f+1|0}while((f|0)<(g|0));if((c[i+31244>>2]|0)==1&e){d=0;do{e=(R(d+h|0,k)|0)+j|0;f=0;do{a[l+((e+f|0)*12|0)+10>>0]=0;f=f+1|0}while((f|0)<(g|0));d=d+1|0}while((d|0)<(g|0))}}return}function zc(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;t=l;l=l+32|0;q=t;s=1<>2]|0;j=c[y+32>>2]|0;m=R(j,f)|0;k=b+200|0;i=c[k>>2]|0;h=c[i+56>>2]|0;m=(c[y>>2]|0)+((e<>2]|0;u=c[i+13184>>2]|0;o=R(f>>u,n)|0;v=c[i+13172>>2]|0;o=(c[y+4>>2]|0)+((e>>v<>2]|0;w=c[i+13188>>2]|0;r=R(f>>w,p)|0;x=c[i+13176>>2]|0;r=(c[y+8>>2]|0)+((e>>x<>0]|0,s<>x,s>>w)|0)+(R(s>>v,s>>u)|0)|0;h=(R(u,d[i+13045>>0]|0)|0)+h|0;i=Fc((c[b+136>>2]|0)+224|0,h+7>>3)|0;if(!(a[b+3049>>0]|0))Sb(b,e,f,g);e=Gc(q,i,h)|0;if((e|0)>=0){y=b+5852|0;Ga[c[y>>2]&3](m,j,s,s,q,d[(c[k>>2]|0)+13044>>0]|0);e=c[k>>2]|0;Ga[c[y>>2]&3](o,n,s>>c[e+13172>>2],s>>c[e+13184>>2],q,d[e+13045>>0]|0);e=c[k>>2]|0;Ga[c[y>>2]&3](r,p,s>>c[e+13176>>2],s>>c[e+13188>>2],q,d[e+13045>>0]|0);e=0}l=t;return e|0}function Ac(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+16|0;p=s;r=c[b+136>>2]|0;j=(c[r+31248>>2]|0)==3;h=1<>0]=pb(b)|0;f=f+1|0}while((f|0)<(q|0));g=g+1|0}while((g|0)<(q|0));h=h>>(j&1);i=r+31264|0;j=r+31260|0;f=0;do{k=f<<1;m=(R(f,h)|0)+e|0;g=0;do{n=g+k|0;o=a[p+n>>0]|0;if(!(o<<24>>24))c[i>>2]=rb(b)|0;else c[j>>2]=qb(b)|0;a[r+31268+n>>0]=Ec(b,(R(g,h)|0)+d|0,m,h,o&255)|0;g=g+1|0}while((g|0)<(q|0));f=f+1|0}while((f|0)<(q|0));switch(c[(c[b+200>>2]|0)+4>>2]|0){case 3:{h=0;do{j=h<<1;i=0;do{g=sb(b)|0;k=i+j|0;a[r+31281+k>>0]=g;f=a[r+31268+k>>0]|0;if((g|0)!=4){p=a[1787+g>>0]|0;f=f<<24>>24==p<<24>>24?34:p}a[r+31277+k>>0]=f;i=i+1|0}while((i|0)<(q|0));h=h+1|0}while((h|0)<(q|0));break}case 2:{g=sb(b)|0;a[r+31281>>0]=g;f=a[r+31268>>0]|0;if((g|0)!=4){b=a[1787+g>>0]|0;f=f<<24>>24==b<<24>>24?34:b}a[r+31277>>0]=a[1791+(f&255)>>0]|0;break}case 0:break;default:{g=sb(b)|0;f=a[r+31268>>0]|0;if((g|0)!=4){b=a[1787+g>>0]|0;f=f<<24>>24==b<<24>>24?34:b}a[r+31277>>0]=f}}l=s;return}function Bc(b,e,f,g,h,i,j,k,m,n,o,p,q){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=l;l=l+16|0;B=E+8|0;C=E;A=c[b+136>>2]|0;r=c[p>>2]|0;c[B>>2]=r;s=c[p+4>>2]|0;v=B+4|0;c[v>>2]=s;x=c[q>>2]|0;c[C>>2]=x;q=c[q+4>>2]|0;w=C+4|0;c[w>>2]=q;u=a[A+31254>>0]|0;if(u<<24>>24){if((n|0)==1){c[A+288>>2]=d[A+31268+o>>0];p=(c[(c[b+200>>2]|0)+4>>2]|0)==3?o:0;D=5}}else{c[A+288>>2]=d[A+31268>>0];p=0;D=5}if((D|0)==5){c[A+292>>2]=d[A+31277+p>>0];c[A+296>>2]=d[A+31281+p>>0]}y=b+200|0;p=c[y>>2]|0;t=(c[p+13076>>2]|0)>>>0>>0;if(((!t?(c[p+13072>>2]|0)>>>0>>0:0)?(d[A+31255>>0]|0)>(n|0):0)?!((n|0)==0&u<<24>>24!=0):0)t=(zb(b,m)|0)&255;else{if((c[p+13088>>2]|0)==0?(c[A+31244>>2]|0)==0:0)p=(n|0)==0&(c[A+31248>>2]|0)!=0;else p=0;if(t)p=1;else p=p|(n|0)==0&u<<24>>24!=0;t=p&1}p=c[(c[y>>2]|0)+4>>2]|0;if((m|0)>2)if(!p)p=x;else D=20;else if((p|0)==3)D=20;else p=x;if((D|0)==20){p=(n|0)!=0;if(!(p&(r|0)==0)){r=Ab(b,n)|0;c[B>>2]=r;if((c[(c[y>>2]|0)+4>>2]|0)==2?(m|0)==3|t<<24>>24==0:0){s=Ab(b,n)|0;c[v>>2]=s}}else r=0;if(!(p&(x|0)==0)){p=Ab(b,n)|0;c[C>>2]=p;if((c[(c[y>>2]|0)+4>>2]|0)==2?(m|0)==3|t<<24>>24==0:0){q=Ab(b,n)|0;c[w>>2]=q}}else p=0}if(!(t<<24>>24)){y=c[y>>2]|0;t=c[y+13072>>2]|0;u=1<>2]|0;if(((r|n|p|0)==0?(c[A+31244>>2]|0)!=1:0)?((q|s|0)==0?1:(c[y+4>>2]|0)!=2):0)q=1;else q=Bb(b,n)|0;p=Cc(b,e,f,g,h,i,j,k,m,o,q,B,C)|0;if((p|0)>=0){if(q|0?(z=1<>t,v)|0;p=0;do{a[(c[r>>2]|0)+((p+e>>t)+s)>>0]=1;p=p+u|0}while((p|0)<(z|0));q=q+u|0}while((q|0)<(z|0))}if(((a[b+3049>>0]|0)==0?(Sb(b,e,f,m),(a[(c[b+204>>2]|0)+40>>0]|0)!=0):0)?(a[A+31256>>0]|0)!=0:0){wc(b,e,f,m);D=47}else D=47}}else{r=m+-1|0;t=1<=0){p=Bc(b,s,f,e,f,i,j,k,r,q,1,B,C)|0;if((p|0)>=0){p=Bc(b,e,t,e,f,i,j,k,r,q,2,B,C)|0;if((p|0)>=0){p=Bc(b,s,t,e,f,i,j,k,r,q,3,B,C)|0;if((p|0)>-1)D=47}}}}if((D|0)==47)p=0;l=E;return p|0}function Cc(d,e,f,g,h,i,j,k,l,m,n,o,p){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;B=c[d+136>>2]|0;E=d+200|0;C=l-(c[(c[E>>2]|0)+13172>>2]|0)|0;D=B+31244|0;r=1<>2]|0)==1){_d(d,e,f,r,r);Rc(d,e,f,l,0)}z=(n|0)!=0;n=(c[o>>2]|0)==0;do if(z)if(n)w=10;else{r=1;w=14}else if(n?(c[p>>2]|0)==0:0){q=c[E>>2]|0;n=c[q+4>>2]|0;if((n|0)==2){if(c[o+4>>2]|0){w=10;break}if(c[p+4>>2]|0){w=10;break}}if(!((n|0)==0|(c[D>>2]|0)!=1)){if((l|0)>2|(n|0)==3){r=1<<(c[q+13172>>2]|0)+C;q=1<<(c[q+13184>>2]|0)+C;_d(d,e,f,r,q);Rc(d,e,f,C,1);Rc(d,e,f,C,2);n=(1<>2]|0)+4>>2]|0)!=2){n=0;break}_d(d,e,n,r,q);Rc(d,e,n,C,1);Rc(d,e,n,C,2);n=0;break}if((m|0)==3?(s=1<>2]|0)+l,_d(d,g,h,s,t),Rc(d,g,h,l,1),Rc(d,g,h,l,2),u=r+h|0,(c[(c[E>>2]|0)+4>>2]|0)==2):0){_d(d,g,u,s,t);Rc(d,g,u,l,1);Rc(d,g,u,l,2);n=0}else n=0}else n=0}else{r=1;w=14}while(0);if((w|0)==10)if(!(c[p>>2]|0))if((c[(c[E>>2]|0)+4>>2]|0)==2)if(!(c[o+4>>2]|0)){r=(c[p+4>>2]|0)!=0;w=14}else{r=1;w=14}else{r=0;w=14}else{r=1;w=14}a:do if((w|0)==14){s=d+204|0;if(a[(c[s>>2]|0)+22>>0]|0?(v=B+300|0,(a[v>>0]|0)==0):0){A=hb(d)|0;q=B+280|0;c[q>>2]=A;if(A){A=(ib(d)|0)==1;n=c[q>>2]|0;if(A){n=0-n|0;c[q>>2]=n}}else n=0;a[v>>0]=1;A=(c[(c[E>>2]|0)+13192>>2]|0)/2|0;if((n|0)<(-26-A|0)|(n|0)>(A+25|0)){n=-1094995529;break}Qb(d,i,j,k)}if((r&(a[d+3068>>0]|0)!=0?(a[B+31256>>0]|0)==0:0)?(x=B+301|0,(a[x>>0]|0)==0):0){if(!(jb(d)|0)){a[B+302>>0]=0;n=0}else{n=c[s>>2]|0;if(!(a[n+1633>>0]|0))q=0;else{q=kb(d)|0;n=c[s>>2]|0}a[B+302>>0]=a[n+1634+q>>0]|0;n=a[n+1639+q>>0]|0}a[B+303>>0]=n;a[x>>0]=1}if((l|0)<4&(c[D>>2]|0)==1){n=c[B+288>>2]|0;A=c[B+292>>2]|0;A=(A+-6|0)>>>0<9?2:(A+-22|0)>>>0<9&1;n=(n+-6|0)>>>0<9?2:(n+-22|0)>>>0<9&1}else{A=0;n=0}y=B+304|0;a[y>>0]=0;if(z)Eb(d,e,f,l,n,0);q=c[E>>2]|0;n=c[q+4>>2]|0;if(!n)n=0;else{if(!((l|0)>2|(n|0)==3)){if((m|0)!=3){n=0;break}s=1<>2]|0)+l;n=0;do{q=(n<>2]|0)==1){_d(d,g,q,s,r);Rc(d,g,q,l,1)}if(c[o+(n<<2)>>2]|0)Eb(d,g,q,l,A,1);n=n+1|0}while((n|0)<(((c[(c[E>>2]|0)+4>>2]|0)==2?2:1)|0));n=0;while(1){q=(n<>2]|0)==1){_d(d,g,q,s,r);Rc(d,g,q,l,2)}if(c[p+(n<<2)>>2]|0)Eb(d,g,q,l,A,2);n=n+1|0;if((n|0)>=(((c[(c[E>>2]|0)+4>>2]|0)==2?2:1)|0)){n=0;break a}}}x=1<<(c[q+13172>>2]|0)+C;w=1<<(c[q+13184>>2]|0)+C;do if(z&(a[(c[s>>2]|0)+1630>>0]|0)!=0){if(c[D>>2]|0){l=(c[B+296>>2]|0)==4;a[y>>0]=l&1;if(!l)break}else a[y>>0]=1;Dc(d,0)}else a[y>>0]=0;while(0);t=d+160|0;u=B+320|0;i=B+11680|0;v=1<0;k=d+5856+(C+-2<<2)|0;s=B+284|0;n=0;do{q=(n<>2]|0)==1){_d(d,e,q,x,w);Rc(d,e,q,C,1)}if(!(c[o+(n<<2)>>2]|0)){if(a[y>>0]|0){l=c[t>>2]|0;q=c[l+36>>2]|0;B=c[E>>2]|0;r=R(f>>c[B+13184>>2],q)|0;r=(c[l+4>>2]|0)+((e>>c[B+13172>>2]<>2])+r)|0;if(j){n=0;do{b[i+(n<<1)>>1]=(R(b[u+(n<<1)>>1]|0,c[s>>2]|0)|0)>>>3;n=n+1|0}while((n|0)!=(v|0));n=v}else n=0;Da[c[k>>2]&7](r,i,q)}}else Eb(d,e,q,C,A,1);n=n+1|0}while((n|0)<(((c[(c[E>>2]|0)+4>>2]|0)==2?2:1)|0));if(!(a[y>>0]|0))n=0;else{Dc(d,1);n=0}do{q=(n<>2]|0)==1){_d(d,e,q,x,w);Rc(d,e,q,C,2)}if(!(c[p+(n<<2)>>2]|0)){if(a[y>>0]|0){B=c[t>>2]|0;q=c[B+40>>2]|0;o=c[E>>2]|0;r=R(f>>c[o+13188>>2],q)|0;r=(c[B+8>>2]|0)+((e>>c[o+13176>>2]<>2])+r)|0;if(j){n=0;do{b[i+(n<<1)>>1]=(R(b[u+(n<<1)>>1]|0,c[s>>2]|0)|0)>>>3;n=n+1|0}while((n|0)!=(v|0));n=v}else n=0;Da[c[k>>2]&7](r,i,q)}}else Eb(d,e,q,C,A,2);n=n+1|0}while((n|0)<(((c[(c[E>>2]|0)+4>>2]|0)==2?2:1)|0));n=0}}while(0);return n|0}function Dc(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a+136>>2]|0;d=Cb(a,b)|0;if(!d)a=0;else a=1-((Db(a,b)|0)<<1)<>2]=a;return}function Ec(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+16|0;o=t;m=c[b+136>>2]|0;i=c[b+200>>2]|0;n=c[i+13084>>2]|0;q=e>>n;r=f>>n;s=c[i+13156>>2]|0;n=g>>n;i=c[i+13080>>2]|0;g=(1<>0]|0)!=0|(g&f|0)!=0){j=(R(r+-1|0,s)|0)+q|0;j=d[(c[b+7592>>2]|0)+j>>0]|0}else j=1;if((g&e|0)!=0|(a[m+308>>0]|0)!=0){e=q+-1+(R(r,s)|0)|0;e=d[(c[b+7592>>2]|0)+e>>0]|0}else e=1;p=c[(c[b+3508>>2]|0)+16>>2]|0;g=(f>>i<>>0<2){c[o>>2]=0;c[o+4>>2]=1;i=26;j=0;g=1;break}else{c[o>>2]=e;g=(e+29&31)+2|0;c[o+4>>2]=g;i=(e+31&31)+2|0;j=e;break}else{c[o>>2]=e;c[o+4>>2]=g;if((g|0)==0|(e|0)==0){i=(e|0)==1?26:(g|0)!=1?1:26;j=e}else{i=0;j=e}}while(0);k=o+8|0;c[k>>2]=i;if(!h){f=o+4|0;if((j|0)>(g|0)){e=g&255;c[f>>2]=j;c[o>>2]=e;g=j}else e=j;if((e|0)>(i|0)){h=i&255;c[k>>2]=e;c[o>>2]=h;i=e;e=h}if((g|0)>(i|0)){c[k>>2]=g;c[f>>2]=i&255}g=c[m+31264>>2]|0;g=((g|0)>=(e|0)&1)+g|0;e=1;do{g=((g|0)>=(c[o+(e<<2)>>2]|0)&1)+g|0;e=e+1|0}while((e|0)!=3)}else g=c[o+(c[m+31260>>2]<<2)>>2]|0;h=(n|0)==0?1:n;if((h|0)>0){k=b+7592|0;j=g&255;i=0;do{ah((c[k>>2]|0)+((R(i+r|0,s)|0)+q)|0,j|0,h|0)|0;f=i+q|0;e=0;do{a[p+((f+(R(e+r|0,s)|0)|0)*12|0)+10>>0]=0;e=e+1|0}while((e|0)<(h|0));i=i+1|0}while((i|0)<(h|0))}l=t;return g|0}function Fc(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[a+16>>2]|0;e=c[a>>2]|0;d=(e&1|0)==0?d:d+-1|0;d=(e&511|0)==0?d:d+-1|0;e=(c[a+20>>2]|0)-d|0;if((e|0)<(b|0))d=0;else Qe(a,d+b|0,e-b|0);return d|0}function Gc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=(b|0)!=0&d>>>0<2147483640;d=e?d:0;b=e?b:0;c[a>>2]=b;c[a+12>>2]=d;c[a+16>>2]=d+8;c[a+4>>2]=b+(d+7>>3);c[a+8>>2]=0;return (e?0:-1094995529)|0}function Hc(e,f,g,h,i,j,k,l,m,n,o){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;v=c[e+136>>2]|0;s=c[h>>2]|0;h=c[h+32>>2]|0;r=c[e+200>>2]|0;t=c[r+13120>>2]|0;u=c[r+13124>>2]|0;p=b[i>>1]|0;z=p&3;i=b[i+2>>1]|0;w=i&3;switch(c[e+2428>>2]|0){case 1:{y=(a[(c[e+204>>2]|0)+37>>0]|0)!=0;break}case 0:{y=(a[(c[e+204>>2]|0)+38>>0]|0)!=0;break}default:y=0}x=d[1717+l>>0]|0;q=(p>>2)+j|0;p=(i>>2)+k|0;j=R(p,h)|0;i=c[r+56>>2]|0;j=s+((q<>2]&1](v+320|0,j+(0-((h*3|0)+k))|0,s,h,l+7|0,m+7|0,q+-3|0,p+-3|0,t,u);j=(s*3|0)+k+(v+320)|0;h=s}i=(w|0)!=0&1;p=(z|0)!=0&1;if(y)ua[c[e+6248+(x<<4)+(i<<3)+(p<<2)>>2]&7](f,g,j,h,m,d[e+3101>>0]|0,n,o,z,w,l);else Ea[c[e+6088+(x<<4)+(i<<3)+(p<<2)>>2]&7](f,g,j,h,m,z,w,l);return}function Ic(e,f,g,h,i,j,k,l,m,n,o,p,q){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;u=c[e+136>>2]|0;t=c[e+200>>2]|0;r=c[t+13172>>2]|0;v=c[t+13120>>2]>>r;s=c[t+13184>>2]|0;w=c[t+13124>>2]>>s;switch(c[e+2428>>2]|0){case 1:{B=(a[(c[e+204>>2]|0)+37>>0]|0)!=0;break}case 0:{B=(a[(c[e+204>>2]|0)+38>>0]|0)!=0;break}default:B=0}C=d[1717+m>>0]|0;E=b[o+(j<<2)>>1]|0;D=r+2|0;A=E&(1<>1]|0;j=s+2|0;y=o&(1<>D)+k|0;j=(o>>j)+l|0;r=R(j,i)|0;o=c[t+56>>2]|0;r=h+(r+(s<>2]&1](u+320|0,r+(0-(D+i))|0,E,i,m+3|0,n+3|0,s+-1|0,j+-1|0,v,w);r=E+D+(u+320)|0;i=E}j=(A|0)!=0&1;o=(y|0)!=0&1;if(B)ua[c[e+7048+(C<<4)+(o<<3)+(j<<2)>>2]&7](f,g,r,i,n,b[e+3102>>1]|0,p,q,z,x,m);else Ea[c[e+6888+(C<<4)+(o<<3)+(j<<2)>>2]&7](f,g,r,i,n,z,x,m);return}function Jc(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;j=l;l=l+16|0;g=j;ic(b);f=Pc(b,e)|0;if((f|0)<0){ic(b);c[b+200>>2]=0}else{h=b+4|0;i=c[h>>2]|0;c[i+124>>2]=c[e+13120>>2];c[i+128>>2]=c[e+13124>>2];c[i+116>>2]=c[e+12>>2];c[i+120>>2]=c[e+16>>2];c[i+136>>2]=c[e+60>>2];c[i+172>>2]=c[e+76+(((c[e+72>>2]|0)+-1|0)*12|0)+4>>2];i=e+160|0;c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];if(!(c[e+176>>2]|0))f=1;else f=c[e+184>>2]|0?2:1;i=c[h>>2]|0;c[i+392>>2]=f;if(!(c[e+188>>2]|0)){f=2;g=2;h=2}else{f=d[e+194>>0]|0;g=d[e+193>>0]|0;h=d[e+192>>0]|0}c[i+380>>2]=h;c[i+384>>2]=g;c[i+388>>2]=f;g=e+52|0;ld(b+5852|0,c[g>>2]|0);bf(b+7560|0,c[g>>2]|0);g=b+200|0;if(a[e+12941>>0]|0){f=c[g>>2]|0;h=c[f+4>>2]|0?3:1;i=(1<>2])+2|0;i=R(i,i)|0;c[b+168>>2]=cf(i<>2])|0;f=0;do{i=c[g>>2]|0;k=c[i+13124>>2]>>c[i+13180+(f<<2)>>2];m=R(c[i+13120>>2]>>c[i+13168+(f<<2)>>2]<<1,c[i+13132>>2]|0)|0;c[b+172+(f<<2)>>2]=cf(m<>2])|0;i=c[g>>2]|0;k=R(k<<1,c[i+13128>>2]|0)|0;c[b+184+(f<<2)>>2]=cf(k<>2])|0;f=f+1|0}while((f|0)<(h|0))}c[g>>2]=e;c[b+196>>2]=c[(c[b+208+(c[e>>2]<<2)>>2]|0)+4>>2];f=0}l=j;return f|0}function Kc(b,f,g){b=b|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;n=c[b+200>>2]|0;o=n+64|0;p=c[o>>2]|0;q=f+160|0;a[q>>0]=0;if(a[n+12942>>0]|0){m=n+13040|0;if(!(a[m>>0]|0))l=0;else l=Ye(g)|0;h=Ye(g)|0;k=$g(h|0,0,l|0,0)|0;j=C;if(!(j>>>0>0|(j|0)==0&k>>>0>32)){k=h+l|0;a[q>>0]=k;if(!(k&255))h=0;else{k=b+5816|0;j=b+2432|0;i=0;h=0;do{if(i>>>0>>0){b=a[m>>0]|0;if((b&255)>1){s=((b&255)<<1)+-2|0;b=s>>>0>65535;s=b?s>>>16:s;b=b?16:0;r=(s&65280|0)==0;b=Te(g,(d[2511+(r?s:s>>>8)>>0]|0)+(r?b:b|8)|0)|0}else b=0;b=b&255;c[f+(i<<2)>>2]=e[n+12944+(b<<1)>>1];b=a[n+13008+b>>0]|0}else{c[f+(i<<2)>>2]=Te(g,c[o>>2]|0)|0;b=(We(g)|0)&255}a[f+128+i>>0]=b;if(((We(g)|0)&255)<<24>>24){s=Ye(g)|0;h=s+((i|0)==0|(i|0)==(l|0)?0:h)|0;s=f+(i<<2)|0;c[s>>2]=(c[k>>2]|0)-(h<>2]|0)+(c[s>>2]|0)}i=i+1|0}while((i|0)<(d[q>>0]|0));h=0}}else h=-1094995529}else h=0;return h|0}function Lc(e,f){e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;p=l;l=l+32|0;k=p+16|0;n=p;o=e+3101|0;a[o>>0]=Ye(f)|0;i=e+200|0;if(c[(c[i>>2]|0)+4>>2]|0){m=Mc(f)|0;m=(d[o>>0]|0)+m|0;b[e+3102>>1]=(m|0)<0?0:((m|0)<7?m:7)&65535}m=e+3036|0;if(!(c[m>>2]|0))h=0;else{g=0;do{h=(We(f)|0)&255;a[k+g>>0]=h;if(!(h<<24>>24)){b[e+3104+(g<<1)>>1]=1<>0];b[e+3296+(g<<1)>>1]=0}g=g+1|0;h=c[m>>2]|0}while(g>>>0>>0)}g=(h|0)!=0;if(!(c[(c[i>>2]|0)+4>>2]|0)){if(g){ah(n|0,0,h|0)|0;j=12}}else if(g){g=0;do{a[n+g>>0]=We(f)|0;g=g+1|0;h=c[m>>2]|0}while(g>>>0>>0);if(h|0)j=12}if((j|0)==12){i=e+3102|0;h=0;do{if(a[k+h>>0]|0){j=Mc(f)|0;b[e+3104+(h<<1)>>1]=(1<>0])+j;b[e+3296+(h<<1)>>1]=Mc(f)|0}if(!(a[n+h>>0]|0)){j=1<>1]&65535;b[e+3136+(h<<2)>>1]=j;b[e+3328+(h<<2)>>1]=0;b[e+3136+(h<<2)+2>>1]=j;b[e+3328+(h<<2)+2>>1]=0}else{g=0;do{j=Mc(f)|0;q=Mc(f)|0;j=(1<>1])+j|0;b[e+3136+(h<<2)+(g<<1)>>1]=j;j=q-(j<<16>>9>>b[i>>1])+128|0;b[e+3328+(h<<2)+(g<<1)>>1]=(j|0)<-128?-128:((j|0)<127?j:127)&65535;g=g+1|0}while((g|0)!=2)}h=h+1|0}while(h>>>0<(c[m>>2]|0)>>>0)}l=p;return}function Mc(a){a=a|0;return $e(a)|0}function Nc(a){a=a|0;var b=0;b=c[a+12>>2]|0;return b-(Oc(a)|0)|0}function Oc(a){a=a|0;return c[a+8>>2]|0}function Pc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=c[b+13064>>2]|0;j=c[b+13120>>2]|0;o=c[b+13124>>2]|0;d=R((o>>d)+1|0,(j>>d)+1|0)|0;e=R(c[b+13132>>2]|0,c[b+13128>>2]|0)|0;f=b+13156|0;g=b+13160|0;h=R(c[g>>2]|0,c[f>>2]|0)|0;i=a+5840|0;c[i>>2]=(j>>2)+1;j=a+5844|0;c[j>>2]=(o>>2)+1;o=a+3492|0;c[o>>2]=pf(e,148)|0;p=pf(e,8)|0;c[a+3496>>2]=p;if((((((((!((p|0)==0|(c[o>>2]|0)==0)?(q=b+13144|0,o=b+13140|0,p=a+7584|0,c[p>>2]=cf(R(c[o>>2]|0,c[q>>2]|0)|0)|0,o=of(c[q>>2]|0,c[o>>2]|0)|0,c[a+7588>>2]=o,!((o|0)==0|(c[p>>2]|0)==0)):0)?(k=a+7596|0,c[k>>2]=of(c[b+13148>>2]|0,c[b+13152>>2]|0)|0,q=a+7592|0,c[q>>2]=lf(h)|0,l=cf(R((c[g>>2]|0)+1|0,(c[f>>2]|0)+1|0)|0)|0,c[a+7600>>2]=l,(c[q>>2]|0)!=0):0)?!((l|0)==0|(c[k>>2]|0)==0):0)?(m=a+7604|0,c[m>>2]=cf(e)|0,n=a+7580|0,c[n>>2]=of(d,4)|0,q=of(d,1)|0,c[a+7568>>2]=q,(q|0)!=0):0)?(c[m>>2]|0)!=0:0)?(c[n>>2]|0)!=0:0)?(q=a+7572|0,c[q>>2]=pf(c[i>>2]|0,c[j>>2]|0)|0,p=pf(c[i>>2]|0,c[j>>2]|0)|0,c[a+7576>>2]=p,!((p|0)==0|(c[q>>2]|0)==0)):0)?(q=a+1428|0,c[q>>2]=yf(h*12|0,3)|0,p=yf(e*392|0,3)|0,c[a+1432>>2]=p,!((p|0)==0|(c[q>>2]|0)==0)):0)a=0;else{ic(a);a=-12}return a|0}function Qc(b){b=b|0;var d=0,e=0,f=0,g=0;f=c[b+60>>2]|0;c[f+4>>2]=b;d=lf(31328)|0;c[f+136>>2]=d;a:do if(((d|0)!=0?(c[f+72>>2]=d,c[f+8>>2]=f,e=cf(199)|0,c[f+152>>2]=e,(e|0)!=0):0)?(e=Mf()|0,c[f+164>>2]=e,(e|0)!=0):0){d=0;do{e=Mf()|0;c[f+3512+(d*72|0)>>2]=e;if(!e){g=7;break a}c[f+3512+(d*72|0)+4>>2]=e;d=d+1|0}while(d>>>0<32);c[f+5836>>2]=2147483647;a[f+7721>>0]=1;c[f+5828>>2]=0;d=0}else g=7;while(0);if((g|0)==7){gc(b)|0;d=-12}return d|0}function Rc(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0;sa=l;l=l+272|0;ga=sa+195|0;ia=sa+130|0;ca=sa+65|0;ja=sa;ma=c[b+136>>2]|0;na=c[b+200>>2]|0;X=c[na+13168+(h<<2)>>2]|0;W=c[na+13180+(h<<2)>>2]|0;oa=1<>2]|0;t=oa<>2]|0;n=e>>i&m;o=f>>i&m;s=c[b+204>>2]|0;p=c[s+1684>>2]|0;q=m+2|0;r=c[p+((R(o,q)|0)+n<<2)>>2]|0;qa=c[b+160>>2]|0;pa=c[qa+32+(h<<2)>>2]|0;F=0-pa|0;qa=(c[qa+(h<<2)>>2]|0)+(e>>X)+(R(pa,f>>W)|0)|0;Y=c[na+13156>>2]|0;aa=(h|0)==0;ra=c[(aa?ma+288|0:ma+292|0)>>2]|0;k=ga+1|0;j=ca+1|0;ka=ia+1|0;la=ja+1|0;if(!(c[ma+31288>>2]|0))v=0;else v=(r|0)>(c[p+(n+-1+(R(o+(t>>i)&m,q)|0)<<2)>>2]|0);w=v&1;x=c[ma+31292>>2]|0;z=c[ma+31300>>2]|0;C=c[ma+31296>>2]|0;if(!(c[ma+31304>>2]|0))A=0;else A=(r|0)>(c[p+((R(q,o+-1|0)|0)+(m&n+(u>>i))<<2)>>2]|0);n=A&1;N=(t<<1)+f|0;L=na+13124|0;D=c[L>>2]|0;M=t+f|0;N=((N|0)>(D|0)?D:N)-M>>W;D=(u<<1)+e|0;J=na+13120|0;I=c[J>>2]|0;K=u+e|0;D=((D|0)>(I|0)?I:D)-K>>X;I=s+20|0;if((a[I>>0]|0)==1){B=c[na+13084>>2]|0;t=t>>B;y=u>>B;u=(1<>B;q=M>>B;o=(c[na+13160>>2]|0)-q|0;o=(t|0)>(o|0)?o:t;if((o|0)>0){r=c[(c[b+3508>>2]|0)+16>>2]|0;m=0;i=0;do{i=(a[r+(((R(m+q|0,Y)|0)+p|0)*12|0)+10>>0]|0)==0|i;m=m+2|0}while((m|0)<(o|0));w=i}else w=0}if((x|0)==1&s){q=e+-1>>B;r=f>>B;o=(c[na+13160>>2]|0)-r|0;o=(t|0)>(o|0)?o:t;if((o|0)>0){p=c[(c[b+3508>>2]|0)+16>>2]|0;i=0;m=0;do{i=(a[p+(((R(m+r|0,Y)|0)+q|0)*12|0)+10>>0]|0)==0|i;m=m+2|0}while((m|0)<(o|0));s=i}else s=0}else s=x;if((z|0)==1)r=(a[(c[(c[b+3508>>2]|0)+16>>2]|0)+(((R(f+-1>>B,Y)|0)+(e+-1>>B)|0)*12|0)+10>>0]|0)==0&1;else r=z;if((C|0)==1&u){i=e>>B;p=Y-i|0;p=(y|0)>(p|0)?p:y;if((p|0)>0){q=c[(c[b+3508>>2]|0)+16>>2]|0;o=(R(f+-1>>B,Y)|0)+i|0;i=0;m=0;do{i=(a[q+((o+m|0)*12|0)+10>>0]|0)==0|i;m=m+2|0}while((m|0)<(p|0));q=i}else q=0}else q=C;if(A&u){i=K>>B;o=Y-i|0;o=(y|0)>(o|0)?o:y;if((o|0)>0){p=c[(c[b+3508>>2]|0)+16>>2]|0;n=(R(f+-1>>B,Y)|0)+i|0;i=0;m=0;do{i=(a[p+((n+m|0)*12|0)+10>>0]|0)==0|i;m=m+2|0}while((m|0)<(o|0));n=i}else n=0}i=k;m=i+64|0;do{a[i>>0]=128;i=i+1|0}while((i|0)<(m|0));i=ca;m=i+65|0;do{a[i>>0]=128;i=i+1|0}while((i|0)<(m|0));z=r;x=s;C=q;p=n}else p=n;B=(z|0)!=0;if(B){T=a[qa+~pa>>0]|0;a[ga>>0]=T;a[ca>>0]=T}P=(C|0)!=0;if(P)fh(j|0,qa+F|0,oa|0)|0;T=(p|0)!=0;if(T?(E=j+oa|0,fh(E|0,qa+F+oa|0,oa|0)|0,G=R(d[qa+(oa+-1-pa+D)>>0]|0,16843009)|0,H=oa-D|0,(H|0)>0):0){m=E+D|0;i=0;do{F=m+i|0;a[F>>0]=G;a[F+1>>0]=G>>8;a[F+2>>0]=G>>16;a[F+3>>0]=G>>24;i=i+4|0}while((i|0)<(H|0))}A=(x|0)!=0;if(A&(g|0)!=31){i=0;do{a[k+i>>0]=a[qa+((R(i,pa)|0)+-1)>>0]|0;i=i+1|0}while((i|0)<(oa|0))}y=(w|0)!=0;if(y){m=N+oa|0;if((N|0)>0){i=oa;do{a[k+i>>0]=a[qa+((R(i,pa)|0)+-1)>>0]|0;i=i+1|0}while((i|0)<(m|0))}m=R(d[qa+((R(m+-1|0,pa)|0)+-1)>>0]|0,16843009)|0;n=oa-N|0;if((n|0)>0){o=k+oa+N|0;i=0;do{H=o+i|0;a[H>>0]=m;a[H+1>>0]=m>>8;a[H+2>>0]=m>>16;a[H+3>>0]=m>>24;i=i+4|0}while((i|0)<(n|0))}}if((a[I>>0]|0)==1?(O=w|x,Q=(O|0)!=0,O=O|z,C|p|O|0):0){I=oa<<1;J=c[J>>2]|0;w=J-e>>X;L=c[L>>2]|0;v=L-f>>W;w=T?(((I<0){m=c[(c[b+3508>>2]|0)+16>>2]|0;n=c[na+13084>>2]|0;o=R((-1<>n,Y)|0;i=0;do{if(!(a[m+((o+((i<>n)|0)*12|0)+10>>0]|0))break;i=i+1|0}while((i|0)<(w|0));if((i|0)>0){n=(c[b+3508>>2]|0)+16|0;o=na+13084|0;p=(-1<0)while(1){m=i;i=i+-1|0;V=c[o>>2]|0;if(a[(c[n>>2]|0)+(((R(p>>V,Y)|0)+((i<>V)|0)*12|0)+10>>0]|0)a[j+i>>0]=a[j+m>>0]|0;if((m|0)<=0){V=71;break a}}do{m=i;i=i+-1|0;V=c[o>>2]|0;if(a[(c[n>>2]|0)+(((R(p>>V,Y)|0)+((i<>V)|0)*12|0)+10>>0]|0)a[j+i>>0]=a[j+m>>0]|0}while((m|0)>1);a[ca>>0]=a[j>>0]|0;V=71}else V=71}else V=71;else{q=na+13084|0;o=c[q>>2]|0;r=(c[b+3508>>2]|0)+16|0;n=c[r>>2]|0;p=(-1<>o;i=(y?N:0)+oa|0;do{O=i;i=i+-1|0;m=(a[n+(((R((i<>o,Y)|0)+p|0)*12|0)+10>>0]|0)==0}while(!((O|0)<1|m));if(m){i=a[ca>>0]|0;break}if((w|0)>0){m=R((-1<>o,Y)|0;i=0;do{if(!(a[n+((m+((i<>o)|0)*12|0)+10>>0]|0))break;i=i+1|0}while((i|0)<(w|0));if((i|0)<=-1){V=71;break}}else i=0;p=(-1<>o,Y)|0)+((m<>o)|0)*12|0)+10>>0]|0)a[j+m>>0]=a[j+i>>0]|0;if((i|0)<=0){V=71;break a}i=m;o=c[q>>2]|0;n=c[r>>2]|0}}while(0);if((V|0)==71){i=a[ca>>0]|0;a[ga>>0]=i}a[ga>>0]=i;if(Q&(v|0)>0){i=R(i&255,16843009)|0;n=(c[b+3508>>2]|0)+16|0;o=(-1<>2]|0;if(!(a[(c[n>>2]|0)+(((R((m<>Q,Y)|0)+(o>>Q)|0)*12|0)+10>>0]|0))i=R(d[k+(m|3)>>0]|0,16843009)|0;else{Q=k+m|0;a[Q>>0]=i;a[Q+1>>0]=i>>8;a[Q+2>>0]=i>>16;a[Q+3>>0]=i>>24}m=m+4|0}while((m|0)<(v|0))}if(!A?(S=R(d[ga>>0]|0,16843009)|0,(g|0)!=31):0){i=0;do{Q=k+i|0;a[Q>>0]=S;a[Q+1>>0]=S>>8;a[Q+2>>0]=S>>16;a[Q+3>>0]=S>>24;i=i+4|0}while((i|0)<(oa|0))}if(!y?(U=R(d[k+(oa+-1)>>0]|0,16843009)|0,(g|0)!=31):0){m=k+oa|0;i=0;do{S=m+i|0;a[S>>0]=U;a[S+1>>0]=U>>8;a[S+2>>0]=U>>16;a[S+3>>0]=U>>24;i=i+4|0}while((i|0)<(oa|0))}u=(f|0)!=0;do if((e|0)!=0&u){o=v+-1|0;r=(c[b+3508>>2]|0)+16|0;i=c[r>>2]|0;s=(-1<>2]|0;n=s>>m;if((v|0)>0){q=o;p=R(d[k+o>>0]|0,16843009)|0;while(1){U=q+-3|0;o=k+U|0;if(!(a[i+(((R((U<>m,Y)|0)+n|0)*12|0)+10>>0]|0))o=R(d[o>>0]|0,16843009)|0;else{a[o>>0]=p;a[o+1>>0]=p>>8;a[o+2>>0]=p>>16;a[o+3>>0]=p>>24;o=p;m=c[t>>2]|0;i=c[r>>2]|0}q=q+-4|0;n=s>>m;if((q|0)<=-1)break;else p=o}}if(a[i+(((R((-1<>m,Y)|0)+n|0)*12|0)+10>>0]|0)a[ga>>0]=a[k>>0]|0}else{if(!e){if((v|0)<=0)break;ah(k|0,0,v+3&-4|0)|0;break}i=v+-1|0;if((v|0)>0){U=R(d[k+i>>0]|0,16843009)|0;o=(c[b+3508>>2]|0)+16|0;p=(-1<>2]|0;S=n+-3|0;m=k+S|0;if(!(a[(c[o>>2]|0)+(((R((S<>U,Y)|0)+(p>>U)|0)*12|0)+10>>0]|0))i=R(d[m>>0]|0,16843009)|0;else{a[m>>0]=i;a[m+1>>0]=i>>8;a[m+2>>0]=i>>16;a[m+3>>0]=i>>24}n=n+-4|0}while((n|0)>-1)}}while(0);i=a[ga>>0]|0;a[ca>>0]=i;if(u&(w|0)>0){i=R(i&255,16843009)|0;o=(c[b+3508>>2]|0)+16|0;p=na+13084|0;n=(-1<>2]|0;if(!(a[(c[o>>2]|0)+(((R(n>>f,Y)|0)+((m<>f)|0)*12|0)+10>>0]|0))i=R(d[j+(m|3)>>0]|0,16843009)|0;else{f=j+m|0;a[f>>0]=i;a[f+1>>0]=i>>8;a[f+2>>0]=i>>16;a[f+3>>0]=i>>24}m=m+4|0}while((m|0)<(w|0))}}b:do if(!y){if(A){m=R(d[k+(oa+-1)>>0]|0,16843009)|0;if((g|0)==31){V=132;break}n=k+oa|0;i=0;while(1){Y=n+i|0;a[Y>>0]=m;a[Y+1>>0]=m>>8;a[Y+2>>0]=m>>16;a[Y+3>>0]=m>>24;i=i+4|0;if((i|0)>=(oa|0)){V=129;break b}}}if(B){m=R(d[ga>>0]|0,16843009)|0;n=oa<<1;if((g|0)==31){V=134;break}else i=0;while(1){Z=k+i|0;a[Z>>0]=m;a[Z+1>>0]=m>>8;a[Z+2>>0]=m>>16;a[Z+3>>0]=m>>24;i=i+4|0;if((i|0)>=(n|0)){V=132;break b}}}if(P){m=a[j>>0]|0;a[ga>>0]=m;m=R(m&255,16843009)|0;n=oa<<1;if((g|0)==31){V=137;break}else i=0;while(1){Z=k+i|0;a[Z>>0]=m;a[Z+1>>0]=m>>8;a[Z+2>>0]=m>>16;a[Z+3>>0]=m>>24;i=i+4|0;if((i|0)>=(n|0)){V=134;break b}}}if(!T){a[ga>>0]=-128;m=oa<<1;if((g|0)==31){V=133;break}ah(j|0,-128,((m|0)>4?m:4)+3&-4|0)|0;i=0;while(1){Y=k+i|0;a[Y>>0]=-2139062144;a[Y+1>>0]=-2139062144>>8;a[Y+2>>0]=-2139062144>>16;a[Y+3>>0]=-2139062144>>24;i=i+4|0;if((i|0)>=(m|0)){V=129;break b}}}m=j+oa|0;i=a[m>>0]|0;n=R(i&255,16843009)|0;o=(g|0)==31;if(o){a[ga>>0]=i;break}else i=0;do{_=j+i|0;a[_>>0]=n;a[_+1>>0]=n>>8;a[_+2>>0]=n>>16;a[_+3>>0]=n>>24;i=i+4|0}while((i|0)<(oa|0));m=a[m>>0]|0;a[ga>>0]=m;m=R(m&255,16843009)|0;n=oa<<1;if(o)V=137;else{i=0;do{_=k+i|0;a[_>>0]=m;a[_+1>>0]=m>>8;a[_+2>>0]=m>>16;a[_+3>>0]=m>>24;i=i+4|0}while((i|0)<(n|0));V=137}}else V=129;while(0);if((V|0)==129)if((x|0)==0?(Z=R(d[k+oa>>0]|0,16843009)|0,(g|0)!=31):0){i=0;do{Y=k+i|0;a[Y>>0]=Z;a[Y+1>>0]=Z>>8;a[Y+2>>0]=Z>>16;a[Y+3>>0]=Z>>24;i=i+4|0}while((i|0)<(oa|0));V=132}else V=132;if((V|0)==132)if(!z)V=133;else V=134;if((V|0)==133){a[ga>>0]=a[k>>0]|0;V=134}if((V|0)==134)if((C|0)==0?(_=R(d[ga>>0]|0,16843009)|0,(g|0)!=31):0){i=0;do{Z=j+i|0;a[Z>>0]=_;a[Z+1>>0]=_>>8;a[Z+2>>0]=_>>16;a[Z+3>>0]=_>>24;i=i+4|0}while((i|0)<(oa|0));V=137}else V=137;if(((V|0)==137?!T:0)?($=R(d[j+(oa+-1)>>0]|0,16843009)|0,(g|0)!=31):0){m=j+oa|0;i=0;do{_=m+i|0;a[_>>0]=$;a[_+1>>0]=$>>8;a[_+2>>0]=$>>16;a[_+3>>0]=$>>24;i=i+4|0}while((i|0)<(oa|0))}s=a[ga>>0]|0;a[ca>>0]=s;c:do if(!(c[na+13112>>2]|0)){if(!aa?(c[na+4>>2]|0)!=3:0)break;if((g|0)!=2&(ra|0)!=1?($=ra+-26|0,$=($|0)>-1?$:26-ra|0,_=ra+-10|0,_=(_|0)>-1?_:10-ra|0,((($|0)>(_|0)?_:$)|0)>(c[252+(g+-3<<2)>>2]|0)):0){if(((g|0)==5&(aa&(a[na+13061>>0]|0)!=0)?(da=s&255,ba=a[ca+64>>0]|0,ea=ba&255,ca=ea+da-(d[ca+32>>0]<<1)|0,(((ca|0)>-1?ca:0-ca|0)|0)<8):0)?(ha=ga+64|0,fa=a[ha>>0]|0,ca=(fa&255)+da-(d[ga+32>>0]<<1)|0,(((ca|0)>-1?ca:0-ca|0)|0)<8):0){a[ja>>0]=s;a[ja+64>>0]=ba;i=0;do{ka=i;i=i+1|0;a[la+ka>>0]=((R(i,ea)|0)+32+(R(63-ka|0,da)|0)|0)>>>6}while((i|0)!=63);a[k>>0]=(((s&255)*63|0)+32+(fa&255)|0)>>>6;i=1;while(1){ka=i;i=i+1|0;a[k+ka>>0]=((R(d[ga>>0]|0,63-ka|0)|0)+32+(R(d[ha>>0]|0,i)|0)|0)>>>6;if((i|0)==63){j=la;break c}}}r=oa<<1;q=r+-1|0;i=a[k+q>>0]|0;a[ka+q>>0]=i;m=a[j+q>>0]|0;a[la+q>>0]=m;r=r+-2|0;q=(r|0)>-1;if(q){p=r;n=a[k+r>>0]|0;while(1){ha=p;p=p+-1|0;o=a[k+p>>0]|0;a[ka+ha>>0]=((i&255)+2+((n&255)<<1)+(o&255)|0)>>>2;if((ha|0)<=0)break;else{i=n;n=o}}}ha=((d[k>>0]|0)+2+((s&255)<<1)+(d[j>>0]|0)|0)>>>2&255;a[ia>>0]=ha;a[ja>>0]=ha;if(q){n=r;i=a[j+r>>0]|0;while(1){ja=n;n=n+-1|0;k=a[j+n>>0]|0;a[la+ja>>0]=((m&255)+2+((i&255)<<1)+(k&255)|0)>>>2;if((ja|0)<=0){k=ka;j=la;break}else{m=i;i=k}}}else{k=ka;j=la}}}while(0);switch(ra|0){case 0:{Sc(qa,j,k,pa,g);break}case 1:{Tc(qa,j,k,pa,g,h);break}default:{if(!(c[na+13104>>2]|0))i=0;else i=(a[ma+31256>>0]|0)!=0;Uc(qa,j,k,pa,h,ra,oa,i&1)}}l=sa;return}function Sc(b,c,e,f,g){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;m=1<>0]|0,n-h|0)|0;q=h;h=h+1|0;s=R(d[o>>0]|0,h)|0;r=R(d[c+q>>0]|0,k)|0;a[b+(q+l)>>0]=t+m+s+r+(R(d[p>>0]|0,g)|0)>>i}while((h|0)<(m|0))}while((g|0)<(m|0))}return}function Tc(b,c,e,f,g,h){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=1<>0]|0)+i+(d[c+j>>0]|0)|0;j=j+1|0}while((j|0)<(n|0));g=i>>g+1;l=R(g,16843009)|0;if(!k){j=0;do{k=R(j,f)|0;i=0;do{o=b+(i+k)|0;a[o>>0]=l;a[o+1>>0]=l>>8;a[o+2>>0]=l>>16;a[o+3>>0]=l>>24;i=i+4|0}while((i|0)<(n|0));j=j+1|0}while((j|0)<(n|0))}}else g=n>>g+1;if((h|0)==0&(n|0)<32?(a[b>>0]=((g<<1)+2+(d[e>>0]|0)+(d[c>>0]|0)|0)>>>2,m=(n|0)>1,m):0){j=(g*3|0)+2|0;i=1;do{a[b+i>>0]=(j+(d[c+i>>0]|0)|0)>>>2;i=i+1|0}while((i|0)!=(n|0));if(m){j=(g*3|0)+2|0;i=1;do{a[b+(R(i,f)|0)>>0]=(j+(d[e+i>>0]|0)|0)>>>2;i=i+1|0}while((i|0)!=(n|0))}}return}function Uc(c,e,f,g,h,i,j,k){c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;v=l;l=l+112|0;u=a[1826+(i+-2)>>0]|0;q=v+j|0;m=(R(u,j)|0)>>5;o=i+-11|0;p=o>>>0<15&(m|0)<-1;if((i|0)>17){n=e+-1|0;if(p){if((j|0)>=0)fh(q|0,n|0,j+4&-4|0)|0;n=b[384+(o<<1)>>1]|0;while(1){a[q+m>>0]=a[f+(((R(n,m)|0)+128>>8)+-1)>>0]|0;if((m|0)<-1)m=m+1|0;else{n=q;break}}}t=(j|0)>0;if(t){s=0;do{m=s;s=s+1|0;q=R(s,u)|0;p=q>>5;q=q&31;if(!q){p=p+1|0;o=R(m,g)|0;m=0;do{q=n+(p+m)|0;q=d[q>>0]|d[q+1>>0]<<8|d[q+2>>0]<<16|d[q+3>>0]<<24;r=c+(m+o)|0;a[r>>0]=q;a[r+1>>0]=q>>8;a[r+2>>0]=q>>16;a[r+3>>0]=q>>24;m=m+4|0}while((m|0)<(j|0))}else{r=32-q|0;o=R(m,g)|0;m=0;do{w=m+p|0;x=R(d[n+(w+1)>>0]|0,r)|0;a[c+(m+o)>>0]=(x+16+(R(d[n+(w+2)>>0]|0,q)|0)|0)>>>5;w=m|1;x=w+p|0;y=R(d[n+(x+1)>>0]|0,r)|0;a[c+(w+o)>>0]=(y+16+(R(d[n+(x+2)>>0]|0,q)|0)|0)>>>5;w=m|2;x=w+p|0;y=R(d[n+(x+1)>>0]|0,r)|0;a[c+(w+o)>>0]=(y+16+(R(d[n+(x+2)>>0]|0,q)|0)|0)>>>5;w=m|3;x=w+p|0;y=R(d[n+(x+1)>>0]|0,r)|0;a[c+(w+o)>>0]=(y+16+(R(d[n+(x+2)>>0]|0,q)|0)|0)>>>5;m=m+4|0}while((m|0)<(j|0))}}while((s|0)!=(j|0))}if((h|0)==0&(i|0)==26&(j|0)<32&(k|0)==0&t){n=f+-1|0;m=0;do{y=((d[f+m>>0]|0)-(d[n>>0]|0)>>1)+(d[e>>0]|0)|0;a[c+(R(m,g)|0)>>0]=y>>>0>255?0-y>>31:y;m=m+1|0}while((m|0)!=(j|0))}}else{n=f+-1|0;if(p){if((j|0)>=0)fh(q|0,n|0,j+4&-4|0)|0;n=b[384+(o<<1)>>1]|0;while(1){a[q+m>>0]=a[e+(((R(n,m)|0)+128>>8)+-1)>>0]|0;if((m|0)<-1)m=m+1|0;else{n=q;break}}}t=(j|0)>0;if(t){r=0;do{s=r;r=r+1|0;p=R(r,u)|0;o=p>>5;p=p&31;if(!p){o=o+1|0;m=0;do{a[c+((R(m,g)|0)+s)>>0]=a[n+(o+m)>>0]|0;m=m+1|0}while((m|0)!=(j|0))}else{q=32-p|0;m=0;do{y=m+o|0;x=R(d[n+(y+1)>>0]|0,q)|0;a[c+((R(m,g)|0)+s)>>0]=(x+16+(R(d[n+(y+2)>>0]|0,p)|0)|0)>>>5;m=m+1|0}while((m|0)!=(j|0))}}while((r|0)!=(j|0))}if((h|0)==0&(i|0)==10&(j|0)<32&(k|0)==0&t){n=e+-1|0;m=0;do{y=((d[e+m>>0]|0)-(d[n>>0]|0)>>1)+(d[f>>0]|0)|0;a[c+m>>0]=y>>>0>255?0-y>>31:y;y=m|1;x=((d[e+y>>0]|0)-(d[n>>0]|0)>>1)+(d[f>>0]|0)|0;a[c+y>>0]=x>>>0>255?0-x>>31:x;y=m|2;x=((d[e+y>>0]|0)-(d[n>>0]|0)>>1)+(d[f>>0]|0)|0;a[c+y>>0]=x>>>0>255?0-x>>31:x;y=m|3;x=((d[e+y>>0]|0)-(d[n>>0]|0)>>1)+(d[f>>0]|0)|0;a[c+y>>0]=x>>>0>255?0-x>>31:x;m=m+4|0}while((m|0)<(j|0))}}l=v;return}function Vc(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0;g=c[e>>2]|0;if((g|0?c[g+304>>2]|0:0)?(h=e+70|0,g=(d[h>>0]|0)&(f^255)&255,a[h>>0]=g,g<<24>>24==0):0){Le(c[b+4>>2]|0,e+4|0);wf(e+56|0);c[e+16>>2]=0;wf(e+64|0);wf(e+60|0);c[e+24>>2]=0;c[e+20>>2]=0;c[e+36>>2]=0}return}function Wc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=c[a+200>>2]|0;f=c[g+13080>>2]|0;e=c[(c[(c[a+204>>2]|0)+1668>>2]|0)+((R(e>>f,c[g+13128>>2]|0)|0)+(d>>f)<<2)>>2]|0;return c[(c[b+24>>2]|0)+(e<<2)>>2]|0}function Xc(a){a=a|0;var b=0;b=0;do{Vc(a,a+3512+(b*72|0)|0,6);b=b+1|0}while((b|0)!=32);return}function Yc(a){a=a|0;var b=0;b=0;do{Vc(a,a+3512+(b*72|0)|0,-1);b=b+1|0}while((b|0)!=32);return}function Zc(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;h=d+7616|0;g=0;while(1){if((c[(c[d+3512+(g*72|0)>>2]|0)+304>>2]|0?(b[d+3512+(g*72|0)+68>>1]|0)==(b[h>>1]|0):0)?(c[d+3512+(g*72|0)+32>>2]|0)==(f|0):0){g=-1094995529;break}g=g+1|0;if(g>>>0>=32){i=6;break}}if((i|0)==6){g=_c(d)|0;if(!g)g=-12;else{c[e>>2]=c[g>>2];c[d+3508>>2]=g;a[g+70>>0]=a[d+2438>>0]|0?3:2;c[g+32>>2]=f;b[g+68>>1]=b[h>>1]|0;g=g+40|0;i=(c[d+200>>2]|0)+20|0;c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[g+8>>2]=c[i+8>>2];c[g+12>>2]=c[i+12>>2];g=0}}return g|0}function _c(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;e=0;while(1){b=a+3512+(e*72|0)|0;if(!(c[(c[b>>2]|0)+304>>2]|0)){d=3;break}b=e+1|0;if(b>>>0<32)e=b;else{b=0;break}}do if((d|0)==3)if((Ke(c[a+4>>2]|0,a+3512+(e*72|0)+4|0,1)|0)<0)b=0;else{d=c[a+200>>2]|0;g=a+3512+(e*72|0)+28|0;c[g>>2]=R(c[d+13132>>2]|0,c[d+13128>>2]|0)|0;d=tf((c[a+7660>>2]|0)*392|0)|0;i=a+3512+(e*72|0)+64|0;c[i>>2]=d;if((d|0?(f=Cf(c[a+1428>>2]|0)|0,c[a+3512+(e*72|0)+56>>2]=f,f|0):0)?(c[a+3512+(e*72|0)+16>>2]=c[f+4>>2],h=Cf(c[a+1432>>2]|0)|0,c[a+3512+(e*72|0)+60>>2]=h,h|0):0){d=c[h+4>>2]|0;f=a+3512+(e*72|0)+24|0;c[f>>2]=d;e=c[g>>2]|0;if((e|0)>0?(c[d>>2]=c[(c[i>>2]|0)+4>>2],(e|0)!=1):0){d=1;do{c[(c[f>>2]|0)+(d<<2)>>2]=c[(c[i>>2]|0)+4>>2];d=d+1|0}while((d|0)<(e|0))}i=c[a+7772>>2]|0;a=c[b>>2]|0;c[a+244>>2]=(i|0)==1&1;c[a+240>>2]=(i+-1|0)>>>0<2&1;break}Vc(a,b,-1);b=0}while(0);return b|0}function $c(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;n=d+3034|0;o=d+7618|0;j=(f|0)==0;k=d+7616|0;l=d+200|0;m=d+5816|0;h=0;while(1){if((a[n>>0]|0)==1){f=0;do{g=d+3512+(f*72|0)|0;if(((a[d+3512+(f*72|0)+70>>0]&8)==0?(c[d+3512+(f*72|0)+32>>2]|0)!=(c[m>>2]|0):0)?(b[d+3512+(f*72|0)+68>>1]|0)==(b[o>>1]|0):0)Vc(d,g,1);f=f+1|0}while((f|0)!=32);f=0;g=2147483647;i=0}else{f=0;g=2147483647;i=0}do{if((a[d+3512+(i*72|0)+70>>0]&1)!=0?(b[d+3512+(i*72|0)+68>>1]|0)==(b[o>>1]|0):0){s=c[d+3512+(i*72|0)+32>>2]|0;r=(s|0)<(g|0);f=f+1|0;g=r?s:g;h=r?i:h}i=i+1|0}while((i|0)!=32);if(((j?(b[o>>1]|0)==(b[k>>1]|0):0)?(p=c[l>>2]|0,p|0):0)?(f|0)<=(c[p+76+(((c[p+72>>2]|0)+-1|0)*12|0)+4>>2]|0):0){f=0;break}if(f|0){q=17;break}f=b[o>>1]|0;if(f<<16>>16==(b[k>>1]|0)){f=0;break}b[o>>1]=(f&65535)+1&255}if((q|0)==17){g=d+3512+(h*72|0)|0;f=Rf(e,c[g>>2]|0)|0;if(!(a[d+3512+(h*72|0)+70>>0]&8))Vc(d,g,1);else Vc(d,g,9);f=(f|0)<0?f:1}return f|0}function ad(e){e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;j=e+7618|0;i=e+5816|0;g=0;f=0;do{if((a[e+3512+(g*72|0)+70>>0]|0)!=0?(b[e+3512+(g*72|0)+68>>1]|0)==(b[j>>1]|0):0)f=((c[e+3512+(g*72|0)+32>>2]|0)!=(c[i>>2]|0)&1)+f|0;g=g+1|0}while((g|0)!=32);h=c[e+200>>2]|0;if(h|0?(f|0)>=(c[h+76+(((c[h+72>>2]|0)+-1|0)*12|0)>>2]|0):0){f=2147483647;h=0;do{g=a[e+3512+(h*72|0)+70>>0]|0;if(g<<24>>24!=0?(b[e+3512+(h*72|0)+68>>1]|0)==(b[j>>1]|0):0){k=c[e+3512+(h*72|0)+32>>2]|0;f=(k|0)<(f|0)&(g<<24>>24==1?(k|0)!=(c[i>>2]|0):0)?k:f}h=h+1|0}while((h|0)!=32);g=0;do{h=e+3512+(g*72|0)+70|0;i=d[h>>0]|0;if((i&1|0?(b[e+3512+(g*72|0)+68>>1]|0)==(b[j>>1]|0):0)?(c[e+3512+(g*72|0)+32>>2]|0)<=(f|0):0)a[h>>0]=i|8;g=g+1|0}while((g|0)!=32)}return}function bd(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=l;l=l+208|0;x=A+12|0;y=A;e=(c[b+2428>>2]|0)==0;d=cd(b)|0;a:do if((d|0)>=0)if(((c[b+1824>>2]|0)+(c[b+1628>>2]|0)|0)==(0-(c[b+2216>>2]|0)|0))d=-1094995529;else{n=e?2:1;o=b+3508|0;p=y+4|0;q=y+8|0;r=x+192|0;s=b+3051|0;t=b+3052|0;m=0;v=0;b:while(1){ah(x|0,0,196)|0;u=c[(c[o>>2]|0)+20>>2]|0;j=u+(v*196|0)|0;w=m<<24>>24!=0;c[y>>2]=w&1;c[p>>2]=(w^1)&1;c[q>>2]=3;w=b+3036+(v<<2)|0;k=c[w>>2]|0;if(!k)g=0;else{d=0;do{i=0;do{f=c[y+(i<<2)>>2]|0;g=c[b+1436+(f*196|0)+192>>2]|0;if((g|0)>0&(d|0)<16){h=(i|0)==2&1;e=0;do{c[x+64+(d<<2)>>2]=c[b+1436+(f*196|0)+64+(e<<2)>>2];c[x+(c[r>>2]<<2)>>2]=c[b+1436+(f*196|0)+(e<<2)>>2];c[x+128+(c[r>>2]<<2)>>2]=h;d=(c[r>>2]|0)+1|0;c[r>>2]=d;e=e+1|0}while((e|0)<(g|0)&(d|0)<16)}i=i+1|0}while((i|0)!=3)}while(d>>>0>>0);g=d}if(a[b+3032+v>>0]|0){if(k|0){e=u+(v*196|0)+192|0;d=0;do{f=c[b+2776+(v<<7)+(d<<2)>>2]|0;if((f|0)>=(g|0))break b;c[u+(v*196|0)+64+(d<<2)>>2]=c[x+64+(f<<2)>>2];c[u+(v*196|0)+(d<<2)>>2]=c[x+(f<<2)>>2];c[u+(v*196|0)+128+(d<<2)>>2]=c[x+128+(f<<2)>>2];c[e>>2]=(c[e>>2]|0)+1;d=d+1|0}while(d>>>0<(c[w>>2]|0)>>>0)}}else{fh(j|0,x|0,196)|0;k=u+(v*196|0)+192|0;j=c[k>>2]|0;w=c[w>>2]|0;c[k>>2]=j>>>0>w>>>0?w:j}if((a[s>>0]|0)==m<<24>>24?(z=c[t>>2]|0,z>>>0<(c[u+(v*196|0)+192>>2]|0)>>>0):0)c[(c[o>>2]|0)+36>>2]=c[u+(v*196|0)+(z<<2)>>2];m=m+1<<24>>24;v=m&255;if(v>>>0>=n>>>0){d=0;break a}}d=-1094995529}while(0);l=A;return d|0}function cd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;i=c[a+3508>>2]|0;g=c[i+28>>2]|0;h=c[(c[(c[a+204>>2]|0)+1668>>2]|0)+(c[a+2420>>2]<<2)>>2]|0;d=c[a+5824>>2]|0;e=i+64|0;b=c[e>>2]|0;if(d>>>0<(((c[b+8>>2]|0)>>>0)/392|0)>>>0){f=i+24|0;a=c[f>>2]|0;if((h|0)<(g|0)){c[a+(h<<2)>>2]=(c[b+4>>2]|0)+(d*392|0);b=h+1|0;a=c[f>>2]|0;if((b|0)!=(g|0))do{c[a+(b<<2)>>2]=(c[(c[e>>2]|0)+4>>2]|0)+(d*392|0);b=b+1|0;a=c[f>>2]|0}while((b|0)!=(g|0))}c[i+20>>2]=c[a+(h<<2)>>2];a=0}else a=-1094995529;return a|0}function dd(b){b=b|0;var e=0,f=0,g=0,h=0,i=0;i=c[b+2608>>2]|0;a:do if(!i){c[b+1824>>2]=0;c[b+1628>>2]=0;e=0}else{f=b+3508|0;e=0;do{g=b+3512+(e*72|0)|0;if((g|0)!=(c[f>>2]|0))ed(g,0);e=e+1|0}while((e|0)!=32);e=0;do{c[b+1436+(e*196|0)+192>>2]=0;e=e+1|0}while((e|0)!=5);g=i+4|0;if((c[g>>2]|0)>0){h=b+5816|0;f=0;do{if(!(a[i+136+f>>0]|0))e=2;else e=f>>>0>=(c[i>>2]|0)>>>0&1;e=fd(b,b+1436+(e*196|0)|0,(c[i+8+(f<<2)>>2]|0)+(c[h>>2]|0)|0,2)|0;f=f+1|0;if((e|0)<0)break a}while((f|0)<(c[g>>2]|0))}g=b+2772|0;if(!(a[g>>0]|0))e=0;else{f=0;while(1){e=fd(b,b+1436+((a[b+2740+f>>0]|0?3:4)*196|0)|0,c[b+2612+(f<<2)>>2]|0,4)|0;f=f+1|0;if((e|0)<0)break a;if((f|0)>=(d[g>>0]|0)){e=0;break}}}do{Vc(b,b+3512+(e*72|0)|0,0);e=e+1|0}while((e|0)!=32);e=0}while(0);return e|0}function ed(b,c){b=b|0;c=c|0;b=b+70|0;a[b>>0]=a[b>>0]&-7&255|c;return}function fd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=gd(a,d)|0;do if((f|0)==(c[a+3508>>2]|0))f=-1094995529;else{if(!f){f=hd(a,d)|0;if(!f){f=-12;break}}d=b+192|0;c[b+64+(c[d>>2]<<2)>>2]=c[f+32>>2];c[b+(c[d>>2]<<2)>>2]=f;c[d>>2]=(c[d>>2]|0)+1;ed(f,e);f=0}while(0);return f|0}function gd(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=(1<>2]|0)+64>>2])+-1|0;h=a+7616|0;f=0;while(1){e=a+3512+(f*72|0)|0;if((c[(c[e>>2]|0)+304>>2]|0?(b[a+3512+(f*72|0)+68>>1]|0)==(b[h>>1]|0):0)?(c[a+3512+(f*72|0)+32>>2]&g|0)==(d|0):0)break;f=f+1|0;if(f>>>0>=32){f=0;i=6;break}}a:do if((i|0)==6)while(1){e=a+3512+(f*72|0)|0;if((c[(c[e>>2]|0)+304>>2]|0?(b[a+3512+(f*72|0)+68>>1]|0)==(b[h>>1]|0):0)?(i=c[a+3512+(f*72|0)+32>>2]|0,(i|0)==(d|0)|(i&g|0)==(d|0)):0)break a;f=f+1|0;if(f>>>0>=32){e=0;break}else i=6}while(0);return e|0}function hd(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=_c(d)|0;if(f){k=d+200|0;i=c[k>>2]|0;h=c[f>>2]|0;if(!(c[i+56>>2]|0)){h=c[h+304>>2]|0;if(h|0?(ah(c[h+4>>2]|0,1<<(c[i+52>>2]|0)+-1&255|0,c[h+8>>2]|0)|0,g=c[(c[f>>2]|0)+308>>2]|0,g|0):0){h=1;do{ah(c[g+4>>2]|0,1<<(c[(c[k>>2]|0)+52>>2]|0)+-1&255|0,c[g+8>>2]|0)|0;h=h+1|0;g=c[(c[f>>2]|0)+304+(h<<2)>>2]|0}while((g|0)!=0)}}else if(c[h>>2]|0){j=0;g=i;do{if((c[g+13124>>2]>>c[g+13180+(j<<2)>>2]|0)>0){i=0;do{if((c[g+13120>>2]>>c[g+13168+(j<<2)>>2]|0)>0){h=0;do{l=1<<(c[g+52>>2]|0)+-1&65535;g=c[f>>2]|0;g=(c[g+(j<<2)>>2]|0)+(R(c[g+32+(j<<2)>>2]|0,i)|0)+(h<<1)|0;a[g>>0]=l;a[g+1>>0]=l>>8;h=h+1|0;g=c[k>>2]|0}while((h|0)<(c[g+13120>>2]>>c[g+13168+(j<<2)>>2]|0))}i=i+1|0}while((i|0)<(c[g+13124>>2]>>c[g+13180+(j<<2)>>2]|0));h=c[f>>2]|0}j=j+1|0}while((c[h+(j<<2)>>2]|0)!=0)}c[f+32>>2]=e;b[f+68>>1]=b[d+7616>>1]|0;a[f+70>>0]=0}else f=0;return f|0}function id(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=1<>2]|0)+64>>2];d=c[a+5820>>2]|0;f=(d|0)%(e|0)|0;d=d-f|0;if((f|0)>(b|0)?(f-b|0)>=((e|0)/2|0|0):0)d=d+e|0;else if((f|0)<(b|0))d=d-((b-f|0)>((e|0)/2|0|0)?e:0)|0;return (((c[a+3500>>2]|0)+-16|0)>>>0<3?0:d)+b|0}function jd(b){b=b|0;var d=0,e=0,f=0,g=0;g=c[b+2608>>2]|0;if(g){f=c[g>>2]|0;if(!f){d=0;e=0}else{e=0;d=0;do{d=((a[g+136+e>>0]|0)!=0&1)+d|0;e=e+1|0}while(e>>>0>>0)}f=c[g+4>>2]|0;if((e|0)<(f|0))do{d=((a[g+136+e>>0]|0)!=0&1)+d|0;e=e+1|0}while((e|0)<(f|0))}else d=0;e=a[b+2772>>0]|0;if(e<<24>>24){f=e&255;e=0;do{d=((a[b+2740+e>>0]|0)!=0&1)+d|0;e=e+1|0}while((e|0)<(f|0))}return d|0}function kd(){var b=0,c=0,d=0,e=0,f=0;if(!(a[3893]|0)){c=0;do{b=0;do{f=(R(b<<1|1,c)|0)&127;d=f>>>0>63;f=d?f+-64|0:f;d=d?-1:1;e=(f|0)>31;a[3893+(c<<5)+b>>0]=R(a[1859+(e?64-f|0:f)>>0]|0,e?0-d|0:d)|0;b=b+1|0}while((b|0)!=32);c=c+1|0}while((c|0)!=32)}return}function ld(a,b){a=a|0;b=b|0;c[a>>2]=1;c[a+4>>2]=1;c[a+8>>2]=2;c[a+12>>2]=3;c[a+16>>2]=4;c[a+20>>2]=1;c[a+24>>2]=5;c[a+28>>2]=2;c[a+32>>2]=2;c[a+36>>2]=3;c[a+40>>2]=4;c[a+44>>2]=5;c[a+48>>2]=3;c[a+52>>2]=4;c[a+56>>2]=5;c[a+60>>2]=6;b=0;do{c[a+236+(b<<4)>>2]=1;b=b+1|0}while((b|0)!=10);b=0;do{c[a+236+(b<<4)+4>>2]=2;b=b+1|0}while((b|0)!=10);b=0;do{c[a+236+(b<<4)+8>>2]=3;b=b+1|0}while((b|0)!=10);b=0;do{c[a+236+(b<<4)+12>>2]=4;b=b+1|0}while((b|0)!=10);b=0;do{c[a+396+(b<<4)>>2]=1;b=b+1|0}while((b|0)!=10);b=0;do{c[a+396+(b<<4)+4>>2]=2;b=b+1|0}while((b|0)!=10);b=0;do{c[a+396+(b<<4)+8>>2]=3;b=b+1|0}while((b|0)!=10);b=0;do{c[a+396+(b<<4)+12>>2]=4;b=b+1|0}while((b|0)!=10);b=0;do{c[a+1036+(b<<4)>>2]=1;b=b+1|0}while((b|0)!=10);b=0;do{c[a+1036+(b<<4)+4>>2]=5;b=b+1|0}while((b|0)!=10);b=0;do{c[a+1036+(b<<4)+8>>2]=6;b=b+1|0}while((b|0)!=10);b=0;do{c[a+1036+(b<<4)+12>>2]=7;b=b+1|0}while((b|0)!=10);b=0;do{c[a+1196+(b<<4)>>2]=1;b=b+1|0}while((b|0)!=10);b=0;do{c[a+1196+(b<<4)+4>>2]=5;b=b+1|0}while((b|0)!=10);b=0;do{c[a+1196+(b<<4)+8>>2]=6;b=b+1|0}while((b|0)!=10);b=0;do{c[a+1196+(b<<4)+12>>2]=7;b=b+1|0}while((b|0)!=10);c[a+64>>2]=1;c[a+68>>2]=1;c[a+72>>2]=2;c[a+1676>>2]=2;c[a+1680>>2]=3;c[a+1684>>2]=1;c[a+1688>>2]=2;c[a+1692>>2]=2;c[a+1696>>2]=3;c[a+1700>>2]=1;c[a+1704>>2]=2;return}function md(b,c,d,e,f,g){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;if((e|0)>0){j=(d|0)>0;k=8-g|0;i=0;while(1){if(j){h=0;do{a[b+h>>0]=(Te(f,g)|0)<>1]|0)+(d[j>>0]|0)|0;a[j>>0]=k>>>0>255?0-k>>31:k;g=g+1|0;if((g|0)==4)break;else h=h+2|0}i=i+1|0;if((i|0)==4)break;else{e=e+8|0;c=c+f|0}}return}function od(c,e,f){c=c|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;i=0;while(1){g=0;h=e;while(1){j=c+g|0;k=(b[h>>1]|0)+(d[j>>0]|0)|0;a[j>>0]=k>>>0>255?0-k>>31:k;g=g+1|0;if((g|0)==8)break;else h=h+2|0}i=i+1|0;if((i|0)==8)break;else{e=e+16|0;c=c+f|0}}return}function pd(c,e,f){c=c|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;i=0;while(1){g=0;h=e;while(1){j=c+g|0;k=(b[h>>1]|0)+(d[j>>0]|0)|0;a[j>>0]=k>>>0>255?0-k>>31:k;g=g+1|0;if((g|0)==16)break;else h=h+2|0}i=i+1|0;if((i|0)==16)break;else{e=e+32|0;c=c+f|0}}return}function qd(c,e,f){c=c|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;i=0;while(1){g=0;h=e;while(1){j=c+g|0;k=(b[h>>1]|0)+(d[j>>0]|0)|0;a[j>>0]=k>>>0>255?0-k>>31:k;g=g+1|0;if((g|0)==32)break;else h=h+2|0}i=i+1|0;if((i|0)==32)break;else{e=e+64|0;c=c+f|0}}return}function rd(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0;g=c<<16>>16;e=7-g|0;g=1<0){f=1<>16!=31){c=0;do{d=0;do{b[a>>1]=(b[a>>1]|0)+f>>e;a=a+2|0;d=d+1|0}while((d|0)<(g|0));c=c+1|0}while((c|0)<(g|0))}}else if(c<<16>>16!=31){e=0-e|0;d=0;do{c=0;do{b[a>>1]=b[a>>1]<>16);if(!d){if(c<<16>>16!=31){h=(i|0)>1;g=0;d=a;while(1){if(h){c=1;f=b[d>>1]|0;do{a=d+(c<<1)|0;f=(e[a>>1]|0)+(f&65535)&65535;b[a>>1]=f;c=c+1|0}while((c|0)!=(i|0))}g=g+1|0;if((g|0)>=(i|0))break;else d=d+(i<<1)|0}}}else{g=i+-1|0;if((i|0)>1){f=0;d=a;do{d=d+(i<<1)|0;c=0;do{a=d+(c<<1)|0;b[a>>1]=(e[a>>1]|0)+(e[d+(c-i<<1)>>1]|0);c=c+1|0}while((c|0)!=(i|0));f=f+1|0}while((f|0)!=(g|0))}}return}function td(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c=0;d=a;while(1){n=b[d>>1]|0;l=d+16|0;j=b[l>>1]|0;h=j+n|0;e=d+24|0;m=b[e>>1]|0;k=m+j|0;f=n-m|0;i=d+8|0;g=(b[i>>1]|0)*74|0;m=((n-j+m|0)*74|0)+64|0;j=m>>7;b[l>>1]=(j+32768|0)>>>0>65535?m>>31^32767:j;l=(h*29|0)+64+(k*55|0)+g|0;j=l>>7;b[d>>1]=(j+32768|0)>>>0>65535?l>>31^32767:j;k=(R(k,-29)|0)+64+(f*55|0)+g|0;j=k>>7;b[i>>1]=(j+32768|0)>>>0>65535?k>>31^32767:j;g=(h*55|0)+64+(f*29|0)-g|0;f=g>>7;b[e>>1]=(f+32768|0)>>>0>65535?g>>31^32767:f;c=c+1|0;if((c|0)==4){c=0;break}else d=d+2|0}while(1){e=b[a>>1]|0;g=a+4|0;i=b[g>>1]|0;k=i+e|0;n=a+6|0;f=b[n>>1]|0;h=f+i|0;m=e-f|0;j=a+2|0;l=(b[j>>1]|0)*74|0;f=((e-i+f|0)*74|0)+2048|0;i=f>>12;b[g>>1]=(i+32768|0)>>>0>65535?f>>31^32767:i;g=(k*29|0)+2048+(h*55|0)+l|0;i=g>>12;b[a>>1]=(i+32768|0)>>>0>65535?g>>31^32767:i;h=(R(h,-29)|0)+2048+(m*55|0)+l|0;i=h>>12;b[j>>1]=(i+32768|0)>>>0>65535?h>>31^32767:i;l=(k*55|0)+2048+(m*29|0)-l|0;m=l>>12;b[n>>1]=(m+32768|0)>>>0>65535?l>>31^32767:m;c=c+1|0;if((c|0)==4)break;else a=a+8|0}return}function ud(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c=0;d=a;while(1){k=b[d>>1]<<6;h=d+16|0;i=b[h>>1]<<6;f=i+k|0;i=k-i|0;k=d+8|0;j=b[k>>1]|0;e=d+24|0;l=b[e>>1]|0;g=(l*36|0)+(j*83|0)|0;j=(R(l,-83)|0)+(j*36|0)|0;l=f+64+g|0;m=l>>7;b[d>>1]=(m+32768|0)>>>0>65535?l>>31^32767:m;m=i+64+j|0;l=m>>7;b[k>>1]=(l+32768|0)>>>0>65535?m>>31^32767:l;j=i-j+64|0;i=j>>7;b[h>>1]=(i+32768|0)>>>0>65535?j>>31^32767:i;g=f-g+64|0;f=g>>7;b[e>>1]=(f+32768|0)>>>0>65535?g>>31^32767:f;c=c+1|0;if((c|0)==4){c=0;break}else d=d+2|0}while(1){g=b[a>>1]<<6;j=a+4|0;i=b[j>>1]<<6;l=i+g|0;i=g-i|0;g=a+2|0;h=b[g>>1]|0;m=a+6|0;f=b[m>>1]|0;k=(f*36|0)+(h*83|0)|0;h=(R(f,-83)|0)+(h*36|0)|0;f=l+2048+k|0;e=f>>12;b[a>>1]=(e+32768|0)>>>0>65535?f>>31^32767:e;e=i+2048+h|0;f=e>>12;b[g>>1]=(f+32768|0)>>>0>65535?e>>31^32767:f;h=i-h+2048|0;i=h>>12;b[j>>1]=(i+32768|0)>>>0>65535?h>>31^32767:i;k=l-k+2048|0;l=k>>12;b[m>>1]=(l+32768|0)>>>0>65535?k>>31^32767:l;c=c+1|0;if((c|0)==4)break;else a=a+8|0}return} +function vd(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=l;l=l+32|0;s=u+16|0;t=u;p=(e|0)<8;n=e+4|0;q=s+4|0;r=s+8|0;o=s+12|0;k=0;m=d;n=(n|0)<8?n:8;while(1){c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;h=(n|0)>1;f=0;do{if(h){i=t+(f<<2)|0;g=1;j=c[i>>2]|0;do{j=(R(b[m+(g<<3<<1)>>1]|0,a[3893+(g<<2<<5)+f>>0]|0)|0)+j|0;g=g+2|0}while((g|0)<(n|0));c[i>>2]=j}f=f+1|0}while((f|0)!=4);i=b[m>>1]<<6;h=b[m+64>>1]<<6;j=h+i|0;h=i-h|0;i=b[m+32>>1]|0;f=b[m+96>>1]|0;g=(f*36|0)+(i*83|0)|0;i=(R(f,-83)|0)+(i*36|0)|0;f=g+j|0;c[s>>2]=f;c[q>>2]=i+h;c[r>>2]=h-i;c[o>>2]=j-g;g=0;while(1){j=c[t+(g<<2)>>2]|0;h=f+64+j|0;i=h>>7;b[m+(g<<3<<1)>>1]=(i+32768|0)>>>0>65535?h>>31^32767:i;j=f-j+64|0;f=j>>7;b[m+(7-g<<3<<1)>>1]=(f+32768|0)>>>0>65535?j>>31^32767:f;f=g+1|0;if((f|0)==4)break;g=f;f=c[s+(f<<2)>>2]|0}n=(n|0)<8&((k|0)!=0&(k&3|0)==0)?n+-4|0:n;k=k+1|0;if((k|0)==8)break;else m=m+2|0}k=p?e:8;m=(k|0)>1;n=s+4|0;e=s+8|0;o=s+12|0;j=0;while(1){c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;g=0;do{if(m){h=t+(g<<2)|0;f=1;i=c[h>>2]|0;do{i=(R(b[d+(f<<1)>>1]|0,a[3893+(f<<2<<5)+g>>0]|0)|0)+i|0;f=f+2|0}while((f|0)<(k|0));c[h>>2]=i}g=g+1|0}while((g|0)!=4);q=b[d>>1]<<6;p=b[d+8>>1]<<6;r=p+q|0;p=q-p|0;q=b[d+4>>1]|0;f=b[d+12>>1]|0;g=(f*36|0)+(q*83|0)|0;q=(R(f,-83)|0)+(q*36|0)|0;f=g+r|0;c[s>>2]=f;c[n>>2]=q+p;c[e>>2]=p-q;c[o>>2]=r-g;g=0;while(1){r=c[t+(g<<2)>>2]|0;p=f+2048+r|0;q=p>>12;b[d+(g<<1)>>1]=(q+32768|0)>>>0>65535?p>>31^32767:q;r=f-r+2048|0;f=r>>12;b[d+(7-g<<1)>>1]=(f+32768|0)>>>0>65535?r>>31^32767:f;f=g+1|0;if((f|0)==4)break;g=f;f=c[s+(f<<2)>>2]|0}j=j+1|0;if((j|0)==8)break;else d=d+16|0}l=u;return}function wd(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=l;l=l+96|0;t=x+64|0;u=x+32|0;v=x+16|0;w=x;s=(e|0)<16;n=e+4|0;o=v+4|0;p=v+8|0;q=v+12|0;r=t+28|0;k=0;m=d;n=(n|0)<16?n:16;while(1){c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;c[u+16>>2]=0;c[u+20>>2]=0;c[u+24>>2]=0;c[u+28>>2]=0;h=(n|0)>1;f=0;do{if(h){i=u+(f<<2)|0;g=1;j=c[i>>2]|0;do{j=(R(b[m+(g<<4<<1)>>1]|0,a[3893+(g<<1<<5)+f>>0]|0)|0)+j|0;g=g+2|0}while((g|0)<(n|0));c[i>>2]=j}f=f+1|0}while((f|0)!=8);c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;g=0;do{h=w+(g<<2)|0;f=1;i=c[h>>2]|0;do{i=(R(b[m+(f<<5<<1)>>1]|0,a[3893+(f<<2<<5)+g>>0]|0)|0)+i|0;f=f+2|0}while((f|0)<8);c[h>>2]=i;g=g+1|0}while((g|0)!=4);h=b[m>>1]<<6;g=b[m+256>>1]<<6;i=g+h|0;g=h-g|0;h=b[m+128>>1]|0;j=b[m+384>>1]|0;f=(j*36|0)+(h*83|0)|0;h=(R(j,-83)|0)+(h*36|0)|0;j=f+i|0;c[v>>2]=j;c[o>>2]=h+g;c[p>>2]=g-h;c[q>>2]=i-f;f=c[w>>2]|0;c[t>>2]=f+j;c[r>>2]=j-f;f=1;do{i=c[v+(f<<2)>>2]|0;j=c[w+(f<<2)>>2]|0;c[t+(f<<2)>>2]=j+i;c[t+(7-f<<2)>>2]=i-j;f=f+1|0}while((f|0)!=4);f=0;do{j=c[t+(f<<2)>>2]|0;i=c[u+(f<<2)>>2]|0;g=j+64+i|0;h=g>>7;b[m+(f<<4<<1)>>1]=(h+32768|0)>>>0>65535?g>>31^32767:h;i=j-i+64|0;j=i>>7;b[m+(15-f<<4<<1)>>1]=(j+32768|0)>>>0>65535?i>>31^32767:j;f=f+1|0}while((f|0)!=8);n=(n|0)<16&((k|0)!=0&(k&3|0)==0)?n+-4|0:n;k=k+1|0;if((k|0)==16)break;else m=m+2|0}m=s?e:16;n=(m|0)>1;e=v+4|0;o=v+8|0;p=v+12|0;q=t+28|0;j=d;k=0;while(1){c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;c[u+16>>2]=0;c[u+20>>2]=0;c[u+24>>2]=0;c[u+28>>2]=0;g=0;do{if(n){h=u+(g<<2)|0;f=1;i=c[h>>2]|0;do{i=(R(b[j+(f<<1)>>1]|0,a[3893+(f<<1<<5)+g>>0]|0)|0)+i|0;f=f+2|0}while((f|0)<(m|0));c[h>>2]=i}g=g+1|0}while((g|0)!=8);c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;g=0;do{h=w+(g<<2)|0;f=1;i=c[h>>2]|0;do{i=(R(b[j+(f<<1<<1)>>1]|0,a[3893+(f<<2<<5)+g>>0]|0)|0)+i|0;f=f+2|0}while((f|0)<8);c[h>>2]=i;g=g+1|0}while((g|0)!=4);r=b[j>>1]<<6;i=b[j+16>>1]<<6;s=i+r|0;i=r-i|0;r=b[j+8>>1]|0;d=b[j+24>>1]|0;f=(d*36|0)+(r*83|0)|0;r=(R(d,-83)|0)+(r*36|0)|0;d=f+s|0;c[v>>2]=d;c[e>>2]=r+i;c[o>>2]=i-r;c[p>>2]=s-f;f=c[w>>2]|0;c[t>>2]=f+d;c[q>>2]=d-f;f=1;do{s=c[v+(f<<2)>>2]|0;d=c[w+(f<<2)>>2]|0;c[t+(f<<2)>>2]=d+s;c[t+(7-f<<2)>>2]=s-d;f=f+1|0}while((f|0)!=4);f=0;do{d=c[t+(f<<2)>>2]|0;s=c[u+(f<<2)>>2]|0;i=d+2048+s|0;r=i>>12;b[j+(f<<1)>>1]=(r+32768|0)>>>0>65535?i>>31^32767:r;s=d-s+2048|0;d=s>>12;b[j+(15-f<<1)>>1]=(d+32768|0)>>>0>65535?s>>31^32767:d;f=f+1|0}while((f|0)!=8);k=k+1|0;if((k|0)==16)break;else j=j+32|0}l=x;return}function xd(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=l;l=l+224|0;u=A+160|0;v=A+96|0;w=A+64|0;x=A+32|0;y=A+16|0;z=A;t=(e|0)<32;o=e+4|0;p=y+4|0;q=y+8|0;r=y+12|0;s=w+28|0;m=0;n=d;o=(o|0)<32?o:32;while(1){f=v;g=f+64|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));h=(o|0)>1;f=0;do{if(h){i=v+(f<<2)|0;g=1;j=c[i>>2]|0;do{j=(R(b[n+(g<<5<<1)>>1]|0,a[3893+(g<<5)+f>>0]|0)|0)+j|0;g=g+2|0}while((g|0)<(o|0));c[i>>2]=j}f=f+1|0}while((f|0)!=16);c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[x+12>>2]=0;c[x+16>>2]=0;c[x+20>>2]=0;c[x+24>>2]=0;c[x+28>>2]=0;h=(o|0)/2|0;i=(o|0)>3;g=0;do{if(i){j=x+(g<<2)|0;f=1;k=c[j>>2]|0;do{k=(R(b[n+(f<<6<<1)>>1]|0,a[3893+(f<<1<<5)+g>>0]|0)|0)+k|0;f=f+2|0}while((f|0)<(h|0));c[j>>2]=k}g=g+1|0}while((g|0)!=8);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;c[z+12>>2]=0;g=0;do{h=z+(g<<2)|0;f=1;i=c[h>>2]|0;do{i=(R(b[n+(f<<7<<1)>>1]|0,a[3893+(f<<2<<5)+g>>0]|0)|0)+i|0;f=f+2|0}while((f|0)<8);c[h>>2]=i;g=g+1|0}while((g|0)!=4);i=b[n>>1]<<6;h=b[n+1024>>1]<<6;j=h+i|0;h=i-h|0;i=b[n+512>>1]|0;k=b[n+1536>>1]|0;f=(k*36|0)+(i*83|0)|0;i=(R(k,-83)|0)+(i*36|0)|0;k=f+j|0;c[y>>2]=k;c[p>>2]=i+h;c[q>>2]=h-i;c[r>>2]=j-f;f=c[z>>2]|0;c[w>>2]=f+k;c[s>>2]=k-f;f=1;do{j=c[y+(f<<2)>>2]|0;k=c[z+(f<<2)>>2]|0;c[w+(f<<2)>>2]=k+j;c[w+(7-f<<2)>>2]=j-k;f=f+1|0}while((f|0)!=4);f=0;do{j=c[w+(f<<2)>>2]|0;k=c[x+(f<<2)>>2]|0;c[u+(f<<2)>>2]=k+j;c[u+(15-f<<2)>>2]=j-k;f=f+1|0}while((f|0)!=8);f=0;do{k=c[u+(f<<2)>>2]|0;j=c[v+(f<<2)>>2]|0;h=k+64+j|0;i=h>>7;b[n+(f<<5<<1)>>1]=(i+32768|0)>>>0>65535?h>>31^32767:i;j=k-j+64|0;k=j>>7;b[n+(31-f<<5<<1)>>1]=(k+32768|0)>>>0>65535?j>>31^32767:k;f=f+1|0}while((f|0)!=16);o=(o|0)<32&((m|0)!=0&(m&3|0)==0)?o+-4|0:o;m=m+1|0;if((m|0)==32)break;else n=n+2|0}m=t?e:32;n=(m|0)>1;o=(m|0)/2|0;e=(m|0)>3;p=y+4|0;q=y+8|0;r=y+12|0;s=w+28|0;j=d;k=0;while(1){f=v;g=f+64|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));g=0;do{if(n){h=v+(g<<2)|0;f=1;i=c[h>>2]|0;do{i=(R(b[j+(f<<1)>>1]|0,a[3893+(f<<5)+g>>0]|0)|0)+i|0;f=f+2|0}while((f|0)<(m|0));c[h>>2]=i}g=g+1|0}while((g|0)!=16);c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[x+12>>2]=0;c[x+16>>2]=0;c[x+20>>2]=0;c[x+24>>2]=0;c[x+28>>2]=0;g=0;do{if(e){h=x+(g<<2)|0;f=1;i=c[h>>2]|0;do{d=f<<1;i=(R(b[j+(d<<1)>>1]|0,a[3893+(d<<5)+g>>0]|0)|0)+i|0;f=f+2|0}while((f|0)<(o|0));c[h>>2]=i}g=g+1|0}while((g|0)!=8);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;c[z+12>>2]=0;g=0;do{h=z+(g<<2)|0;f=1;i=c[h>>2]|0;do{d=f<<2;i=(R(b[j+(d<<1)>>1]|0,a[3893+(d<<5)+g>>0]|0)|0)+i|0;f=f+2|0}while((f|0)<8);c[h>>2]=i;g=g+1|0}while((g|0)!=4);i=b[j>>1]<<6;h=b[j+32>>1]<<6;t=h+i|0;h=i-h|0;i=b[j+16>>1]|0;d=b[j+48>>1]|0;f=(d*36|0)+(i*83|0)|0;i=(R(d,-83)|0)+(i*36|0)|0;d=f+t|0;c[y>>2]=d;c[p>>2]=i+h;c[q>>2]=h-i;c[r>>2]=t-f;f=c[z>>2]|0;c[w>>2]=f+d;c[s>>2]=d-f;f=1;do{t=c[y+(f<<2)>>2]|0;d=c[z+(f<<2)>>2]|0;c[w+(f<<2)>>2]=d+t;c[w+(7-f<<2)>>2]=t-d;f=f+1|0}while((f|0)!=4);f=0;do{t=c[w+(f<<2)>>2]|0;d=c[x+(f<<2)>>2]|0;c[u+(f<<2)>>2]=d+t;c[u+(15-f<<2)>>2]=t-d;f=f+1|0}while((f|0)!=8);f=0;do{d=c[u+(f<<2)>>2]|0;t=c[v+(f<<2)>>2]|0;h=d+2048+t|0;i=h>>12;b[j+(f<<1)>>1]=(i+32768|0)>>>0>65535?h>>31^32767:i;t=d-t+2048|0;d=t>>12;b[j+(31-f<<1)>>1]=(d+32768|0)>>>0>65535?t>>31^32767:d;f=f+1|0}while((f|0)!=16);k=k+1|0;if((k|0)==32)break;else j=j+64|0}l=A;return}function yd(a){a=a|0;var c=0,d=0,e=0,f=0;e=((((b[a>>1]|0)+1|0)>>>1)+32|0)>>>6&65535;c=0;do{f=c<<2;d=0;do{b[a+(d+f<<1)>>1]=e;d=d+1|0}while((d|0)!=4);c=c+1|0}while((c|0)!=4);return}function zd(a){a=a|0;var c=0,d=0,e=0,f=0;e=((((b[a>>1]|0)+1|0)>>>1)+32|0)>>>6&65535;c=0;do{f=c<<3;d=0;do{b[a+(d+f<<1)>>1]=e;d=d+1|0}while((d|0)!=8);c=c+1|0}while((c|0)!=8);return}function Ad(a){a=a|0;var c=0,d=0,e=0,f=0;e=((((b[a>>1]|0)+1|0)>>>1)+32|0)>>>6&65535;c=0;do{f=c<<4;d=0;do{b[a+(d+f<<1)>>1]=e;d=d+1|0}while((d|0)!=16);c=c+1|0}while((c|0)!=16);return}function Bd(a){a=a|0;var c=0,d=0,e=0,f=0;e=((((b[a>>1]|0)+1|0)>>>1)+32|0)>>>6&65535;c=0;do{f=c<<5;d=0;do{b[a+(d+f<<1)>>1]=e;d=d+1|0}while((d|0)!=32);c=c+1|0}while((c|0)!=32);return}function Cd(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;if((e|0)>0){f=0;while(1){fh(a|0,c|0,h|0)|0;f=f+1|0;if((f|0)==(e|0))break;else{a=a+b|0;c=c+d|0}}}return}function Dd(b,c,e,f,g,h,i,j){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;h=h+-1|0;A=48+(h<<4)|0;if((g|0)>0){t=(j|0)>0;u=48+(h<<4)+1|0;v=48+(h<<4)+2|0;w=48+(h<<4)+3|0;x=48+(h<<4)+4|0;y=48+(h<<4)+5|0;z=48+(h<<4)+6|0;s=48+(h<<4)+7|0;r=0;while(1){if(t){i=a[A>>0]|0;k=a[u>>0]|0;l=a[v>>0]|0;m=a[w>>0]|0;n=a[x>>0]|0;o=a[y>>0]|0;p=a[z>>0]|0;q=a[s>>0]|0;h=0;do{I=R(d[e+(h+-3)>>0]|0,i)|0;H=R(d[e+(h+-2)>>0]|0,k)|0;G=R(d[e+(h+-1)>>0]|0,l)|0;F=R(d[e+h>>0]|0,m)|0;B=h;h=h+1|0;E=R(d[e+h>>0]|0,n)|0;D=R(d[e+(B+2)>>0]|0,o)|0;C=R(d[e+(B+3)>>0]|0,p)|0;C=I+32+H+G+F+E+D+C+(R(d[e+(B+4)>>0]|0,q)|0)>>6;a[b+B>>0]=C>>>0>255?0-C>>31:C}while((h|0)!=(j|0))}r=r+1|0;if((r|0)==(g|0))break;else{e=e+f|0;b=b+c|0}}}return}function Ed(b,c,e,f,g,h,i,j){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;h=i+-1|0;D=48+(h<<4)|0;if((g|0)>0){u=(j|0)>0;v=f*3|0;w=48+(h<<4)+1|0;x=f<<1;y=48+(h<<4)+2|0;z=48+(h<<4)+3|0;A=48+(h<<4)+4|0;B=48+(h<<4)+5|0;C=48+(h<<4)+6|0;s=48+(h<<4)+7|0;t=f<<2;r=0;while(1){if(u){i=a[D>>0]|0;k=a[w>>0]|0;l=a[y>>0]|0;m=a[z>>0]|0;n=a[A>>0]|0;o=a[B>>0]|0;p=a[C>>0]|0;q=a[s>>0]|0;h=0;do{K=R(d[e+(h-v)>>0]|0,i)|0;J=R(d[e+(h-x)>>0]|0,k)|0;I=R(d[e+(h-f)>>0]|0,l)|0;H=R(d[e+h>>0]|0,m)|0;G=R(d[e+(h+f)>>0]|0,n)|0;F=R(d[e+(h+x)>>0]|0,o)|0;E=R(d[e+(h+v)>>0]|0,p)|0;E=K+32+J+I+H+G+F+E+(R(d[e+(h+t)>>0]|0,q)|0)>>6;a[b+h>>0]=E>>>0>255?0-E>>31:E;h=h+1|0}while((h|0)!=(j|0))}r=r+1|0;if((r|0)==(g|0))break;else{e=e+f|0;b=b+c|0}}}return}function Fd(c,d,e,f,g,h,i,j){c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0;N=l;l=l+9088|0;M=N;h=h+-1|0;E=48+(h<<4)|0;if((g|0)>-7){F=(j|0)>0;G=48+(h<<4)+1|0;H=48+(h<<4)+2|0;I=48+(h<<4)+3|0;J=48+(h<<4)+4|0;K=48+(h<<4)+5|0;L=48+(h<<4)+6|0;C=48+(h<<4)+7|0;D=g+6|0;B=M;e=e+(R(f,-3)|0)|0;m=0;while(1){if(F){n=a[E>>0]|0;o=a[G>>0]|0;p=a[H>>0]|0;q=a[I>>0]|0;r=a[J>>0]|0;s=a[K>>0]|0;t=a[L>>0]|0;u=a[C>>0]|0;k=0;h=a[e+-3>>0]|0;v=a[e+-2>>0]|0;w=a[e+-1>>0]|0;x=a[e>>0]|0;y=a[e+1>>0]|0;z=a[e+2>>0]|0;A=a[e+3>>0]|0;while(1){O=(R(v&255,o)|0)+(R(h&255,n)|0)+(R(w&255,p)|0)+(R(x&255,q)|0)+(R(y&255,r)|0)+(R(z&255,s)|0)+(R(A&255,t)|0)|0;h=a[e+(k+4)>>0]|0;b[B+(k<<1)>>1]=O+(R(h&255,u)|0);k=k+1|0;if((k|0)==(j|0))break;else{U=A;T=z;S=y;Q=x;P=w;O=v;A=h;z=U;y=T;x=S;w=Q;v=P;h=O}}}if((m|0)<(D|0)){B=B+128|0;e=e+f|0;m=m+1|0}else break}h=i+-1|0;v=48+(h<<4)|0;if((g|0)>0){w=(j|0)>0;x=48+(h<<4)+1|0;y=48+(h<<4)+2|0;z=48+(h<<4)+3|0;A=48+(h<<4)+4|0;B=48+(h<<4)+5|0;C=48+(h<<4)+6|0;u=48+(h<<4)+7|0;t=0;h=M+384|0;while(1){if(w){p=a[v>>0]|0;q=a[x>>0]|0;r=a[y>>0]|0;s=a[z>>0]|0;k=a[A>>0]|0;m=a[B>>0]|0;n=a[C>>0]|0;o=a[u>>0]|0;e=0;do{U=R(b[h+(e+-192<<1)>>1]|0,p)|0;U=(R(b[h+(e+-128<<1)>>1]|0,q)|0)+U|0;U=U+(R(b[h+(e+-64<<1)>>1]|0,r)|0)|0;U=U+(R(b[h+(e<<1)>>1]|0,s)|0)|0;U=U+(R(b[h+(e+64<<1)>>1]|0,k)|0)|0;U=U+(R(b[h+(e+128<<1)>>1]|0,m)|0)|0;U=U+(R(b[h+(e+192<<1)>>1]|0,n)|0)|0;U=(U+(R(b[h+(e+256<<1)>>1]|0,o)|0)>>6)+32>>6;a[c+e>>0]=U>>>0>255?0-U>>31:U;e=e+1|0}while((e|0)!=(j|0))}t=t+1|0;if((t|0)==(g|0))break;else{c=c+d|0;h=h+128|0}}}}l=N;return}function Gd(b,c,e,f,g,h,i,j,k,l,m){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0;o=h+6|0;p=1<>1;if((g|0)>0){q=(m|0)>0;n=i<<6;i=0;l=b;h=e;while(1){if(q){k=0;do{e=((R(n,d[h+k>>0]|0)|0)+p>>o)+j|0;a[l+k>>0]=e>>>0>255?0-e>>31:e;k=k+1|0}while((k|0)!=(m|0))}i=i+1|0;if((i|0)==(g|0))break;else{l=l+c|0;h=h+f|0}}}return}function Hd(b,c,e,f,g,h,i,j,k,l,m){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;k=k+-1|0;E=48+(k<<4)|0;v=h+6|0;w=1<>1;if((g|0)>0){x=(m|0)>0;y=48+(k<<4)+1|0;z=48+(k<<4)+2|0;A=48+(k<<4)+3|0;B=48+(k<<4)+4|0;C=48+(k<<4)+5|0;D=48+(k<<4)+6|0;u=48+(k<<4)+7|0;t=0;while(1){if(x){l=a[E>>0]|0;h=a[y>>0]|0;n=a[z>>0]|0;o=a[A>>0]|0;p=a[B>>0]|0;q=a[C>>0]|0;r=a[D>>0]|0;s=a[u>>0]|0;k=0;do{G=R(d[e+(k+-3)>>0]|0,l)|0;G=(R(d[e+(k+-2)>>0]|0,h)|0)+G|0;G=G+(R(d[e+(k+-1)>>0]|0,n)|0)|0;G=G+(R(d[e+k>>0]|0,o)|0)|0;F=k;k=k+1|0;G=G+(R(d[e+k>>0]|0,p)|0)|0;G=G+(R(d[e+(F+2)>>0]|0,q)|0)|0;G=G+(R(d[e+(F+3)>>0]|0,r)|0)|0;G=((R(G+(R(d[e+(F+4)>>0]|0,s)|0)|0,i)|0)+w>>v)+j|0;a[b+F>>0]=G>>>0>255?0-G>>31:G}while((k|0)!=(m|0))}t=t+1|0;if((t|0)==(g|0))break;else{e=e+f|0;b=b+c|0}}}return}function Id(b,c,e,f,g,h,i,j,k,l,m){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;k=l+-1|0;H=48+(k<<4)|0;w=h+6|0;x=1<>1;if((g|0)>0){y=(m|0)>0;z=f*3|0;A=48+(k<<4)+1|0;B=f<<1;C=48+(k<<4)+2|0;D=48+(k<<4)+3|0;E=48+(k<<4)+4|0;F=48+(k<<4)+5|0;G=48+(k<<4)+6|0;u=48+(k<<4)+7|0;v=f<<2;t=0;while(1){if(y){l=a[H>>0]|0;h=a[A>>0]|0;n=a[C>>0]|0;o=a[D>>0]|0;p=a[E>>0]|0;q=a[F>>0]|0;r=a[G>>0]|0;s=a[u>>0]|0;k=0;do{I=R(d[e+(k-z)>>0]|0,l)|0;I=(R(d[e+(k-B)>>0]|0,h)|0)+I|0;I=I+(R(d[e+(k-f)>>0]|0,n)|0)|0;I=I+(R(d[e+k>>0]|0,o)|0)|0;I=I+(R(d[e+(k+f)>>0]|0,p)|0)|0;I=I+(R(d[e+(k+B)>>0]|0,q)|0)|0;I=I+(R(d[e+(k+z)>>0]|0,r)|0)|0;I=((R(I+(R(d[e+(k+v)>>0]|0,s)|0)|0,i)|0)+x>>w)+j|0;a[b+k>>0]=I>>>0>255?0-I>>31:I;k=k+1|0}while((k|0)!=(m|0))}t=t+1|0;if((t|0)==(g|0))break;else{e=e+f|0;b=b+c|0}}}return}function Jd(c,d,e,f,g,h,i,j,k,m,n){c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;S=l;l=l+9088|0;O=S;P=h+6|0;Q=1<

    >1;h=k+-1|0;G=48+(h<<4)|0;if((g|0)>-7){H=(n|0)>0;I=48+(h<<4)+1|0;J=48+(h<<4)+2|0;K=48+(h<<4)+3|0;L=48+(h<<4)+4|0;M=48+(h<<4)+5|0;N=48+(h<<4)+6|0;E=48+(h<<4)+7|0;F=g+6|0;C=O;D=0;k=e+(R(f,-3)|0)|0;while(1){if(H){o=a[G>>0]|0;p=a[I>>0]|0;q=a[J>>0]|0;r=a[K>>0]|0;s=a[L>>0]|0;t=a[M>>0]|0;u=a[N>>0]|0;v=a[E>>0]|0;e=0;h=a[k+-3>>0]|0;w=a[k+-2>>0]|0;x=a[k+-1>>0]|0;y=a[k>>0]|0;z=a[k+1>>0]|0;A=a[k+2>>0]|0;B=a[k+3>>0]|0;while(1){T=(R(w&255,p)|0)+(R(h&255,o)|0)+(R(x&255,q)|0)+(R(y&255,r)|0)+(R(z&255,s)|0)+(R(A&255,t)|0)+(R(B&255,u)|0)|0;h=a[k+(e+4)>>0]|0;b[C+(e<<1)>>1]=T+(R(h&255,v)|0);e=e+1|0;if((e|0)==(n|0))break;else{Y=B;X=A;W=z;V=y;U=x;T=w;B=h;A=Y;z=X;y=W;x=V;w=U;h=T}}}if((D|0)<(F|0)){C=C+128|0;D=D+1|0;k=k+f|0}else break}h=m+-1|0;x=48+(h<<4)|0;if((g|0)>0){y=(n|0)>0;z=48+(h<<4)+1|0;A=48+(h<<4)+2|0;B=48+(h<<4)+3|0;C=48+(h<<4)+4|0;D=48+(h<<4)+5|0;E=48+(h<<4)+6|0;w=48+(h<<4)+7|0;h=O+384|0;k=0;while(1){if(y){v=a[x>>0]|0;o=a[z>>0]|0;p=a[A>>0]|0;q=a[B>>0]|0;r=a[C>>0]|0;s=a[D>>0]|0;t=a[E>>0]|0;u=a[w>>0]|0;e=0;do{Y=R(b[h+(e+-192<<1)>>1]|0,v)|0;Y=(R(b[h+(e+-128<<1)>>1]|0,o)|0)+Y|0;Y=Y+(R(b[h+(e+-64<<1)>>1]|0,p)|0)|0;Y=Y+(R(b[h+(e<<1)>>1]|0,q)|0)|0;Y=Y+(R(b[h+(e+64<<1)>>1]|0,r)|0)|0;Y=Y+(R(b[h+(e+128<<1)>>1]|0,s)|0)|0;Y=Y+(R(b[h+(e+192<<1)>>1]|0,t)|0)|0;Y=((R(Y+(R(b[h+(e+256<<1)>>1]|0,u)|0)>>6,i)|0)+Q>>P)+j|0;a[c+e>>0]=Y>>>0>255?0-Y>>31:Y;e=e+1|0}while((e|0)!=(n|0))}k=k+1|0;if((k|0)==(g|0))break;else{c=c+d|0;h=h+128|0}}}}l=S;return}function Kd(b,c,e,f,g,h,i,j){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;h=h+-1|0;s=16+(h<<2)|0;if((g|0)>0){p=(j|0)>0;q=16+(h<<2)+1|0;r=16+(h<<2)+2|0;o=16+(h<<2)+3|0;n=0;while(1){if(p){i=a[s>>0]|0;k=a[q>>0]|0;l=a[r>>0]|0;m=a[o>>0]|0;h=0;do{w=R(d[e+(h+-1)>>0]|0,i)|0;v=R(d[e+h>>0]|0,k)|0;t=h;h=h+1|0;u=R(d[e+h>>0]|0,l)|0;u=w+32+v+u+(R(d[e+(t+2)>>0]|0,m)|0)>>6;a[b+t>>0]=u>>>0>255?0-u>>31:u}while((h|0)!=(j|0))}n=n+1|0;if((n|0)==(g|0))break;else{e=e+f|0;b=b+c|0}}}return}function Ld(b,c,e,f,g,h,i,j){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;h=i+-1|0;t=16+(h<<2)|0;if((g|0)>0){q=(j|0)>0;r=16+(h<<2)+1|0;s=16+(h<<2)+2|0;o=16+(h<<2)+3|0;p=f<<1;n=0;while(1){if(q){i=a[t>>0]|0;k=a[r>>0]|0;l=a[s>>0]|0;m=a[o>>0]|0;h=0;do{w=R(d[e+(h-f)>>0]|0,i)|0;v=R(d[e+h>>0]|0,k)|0;u=R(d[e+(h+f)>>0]|0,l)|0;u=w+32+v+u+(R(d[e+(h+p)>>0]|0,m)|0)>>6;a[b+h>>0]=u>>>0>255?0-u>>31:u;h=h+1|0}while((h|0)!=(j|0))}n=n+1|0;if((n|0)==(g|0))break;else{e=e+f|0;b=b+c|0}}}return}function Md(c,d,e,f,g,h,i,j){c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;B=l;l=l+8576|0;A=B;h=h+-1|0;w=16+(h<<2)|0;if((g|0)>-3){x=(j|0)>0;y=16+(h<<2)+1|0;z=16+(h<<2)+2|0;u=16+(h<<2)+3|0;v=g+2|0;s=0;t=A;e=e+(0-f)|0;while(1){if(x){m=a[w>>0]|0;n=a[y>>0]|0;o=a[z>>0]|0;p=a[u>>0]|0;k=0;h=a[e+-1>>0]|0;q=a[e>>0]|0;r=a[e+1>>0]|0;while(1){C=(R(q&255,n)|0)+(R(h&255,m)|0)+(R(r&255,o)|0)|0;h=a[e+(k+2)>>0]|0;b[t+(k<<1)>>1]=C+(R(h&255,p)|0);k=k+1|0;if((k|0)==(j|0))break;else{D=r;C=q;r=h;q=D;h=C}}}if((s|0)<(v|0)){s=s+1|0;t=t+128|0;e=e+f|0}else break}h=i+-1|0;r=16+(h<<2)|0;if((g|0)>0){s=(j|0)>0;t=16+(h<<2)+1|0;u=16+(h<<2)+2|0;q=16+(h<<2)+3|0;p=0;h=A+128|0;while(1){if(s){k=a[r>>0]|0;m=a[t>>0]|0;n=a[u>>0]|0;o=a[q>>0]|0;e=0;do{D=R(b[h+(e+-64<<1)>>1]|0,k)|0;D=(R(b[h+(e<<1)>>1]|0,m)|0)+D|0;D=D+(R(b[h+(e+64<<1)>>1]|0,n)|0)|0;D=(D+(R(b[h+(e+128<<1)>>1]|0,o)|0)>>6)+32>>6;a[c+e>>0]=D>>>0>255?0-D>>31:D;e=e+1|0}while((e|0)!=(j|0))}p=p+1|0;if((p|0)==(g|0))break;else{c=c+d|0;h=h+128|0}}}}l=B;return}function Nd(b,c,e,f,g,h,i,j,k,l,m){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;k=k+-1|0;w=16+(k<<2)|0;r=h+6|0;s=1<>1;if((g|0)>0){t=(m|0)>0;u=16+(k<<2)+1|0;v=16+(k<<2)+2|0;q=16+(k<<2)+3|0;p=0;k=b;while(1){if(t){h=a[w>>0]|0;b=a[u>>0]|0;n=a[v>>0]|0;o=a[q>>0]|0;l=0;do{y=R(d[e+(l+-1)>>0]|0,h)|0;y=(R(d[e+l>>0]|0,b)|0)+y|0;x=l;l=l+1|0;y=y+(R(d[e+l>>0]|0,n)|0)|0;y=((R(y+(R(d[e+(x+2)>>0]|0,o)|0)|0,i)|0)+s>>r)+j|0;a[k+x>>0]=y>>>0>255?0-y>>31:y}while((l|0)!=(m|0))}p=p+1|0;if((p|0)==(g|0))break;else{e=e+f|0;k=k+c|0}}}return}function Od(b,c,e,f,g,h,i,j,k,l,m){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;k=l+-1|0;x=16+(k<<2)|0;s=h+6|0;t=1<>1;if((g|0)>0){u=(m|0)>0;v=16+(k<<2)+1|0;w=16+(k<<2)+2|0;q=16+(k<<2)+3|0;r=f<<1;p=0;k=b;while(1){if(u){h=a[x>>0]|0;b=a[v>>0]|0;n=a[w>>0]|0;o=a[q>>0]|0;l=0;do{y=R(d[e+(l-f)>>0]|0,h)|0;y=(R(d[e+l>>0]|0,b)|0)+y|0;y=y+(R(d[e+(l+f)>>0]|0,n)|0)|0;y=((R(y+(R(d[e+(l+r)>>0]|0,o)|0)|0,i)|0)+t>>s)+j|0;a[k+l>>0]=y>>>0>255?0-y>>31:y;l=l+1|0}while((l|0)!=(m|0))}p=p+1|0;if((p|0)==(g|0))break;else{e=e+f|0;k=k+c|0}}}return}function Pd(c,d,e,f,g,h,i,j,k,m,n){c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;F=l;l=l+8576|0;C=F;k=k+-1|0;B=16+(k<<2)|0;D=h+6|0;E=1<>1;if((g|0)>-3){y=(n|0)>0;z=16+(k<<2)+1|0;A=16+(k<<2)+2|0;w=16+(k<<2)+3|0;x=g+2|0;u=C;v=0;h=e+(0-f)|0;while(1){if(y){o=a[B>>0]|0;p=a[z>>0]|0;q=a[A>>0]|0;r=a[w>>0]|0;e=0;k=a[h+-1>>0]|0;s=a[h>>0]|0;t=a[h+1>>0]|0;while(1){G=(R(s&255,p)|0)+(R(k&255,o)|0)+(R(t&255,q)|0)|0;k=a[h+(e+2)>>0]|0;b[u+(e<<1)>>1]=G+(R(k&255,r)|0);e=e+1|0;if((e|0)==(n|0))break;else{H=t;G=s;t=k;s=H;k=G}}}if((v|0)<(x|0)){u=u+128|0;v=v+1|0;h=h+f|0}else break}k=m+-1|0;t=16+(k<<2)|0;if((g|0)>0){u=(n|0)>0;v=16+(k<<2)+1|0;w=16+(k<<2)+2|0;s=16+(k<<2)+3|0;k=C+128|0;h=0;while(1){if(u){o=a[t>>0]|0;p=a[v>>0]|0;q=a[w>>0]|0;r=a[s>>0]|0;e=0;do{H=R(b[k+(e+-64<<1)>>1]|0,o)|0;H=(R(b[k+(e<<1)>>1]|0,p)|0)+H|0;H=H+(R(b[k+(e+64<<1)>>1]|0,q)|0)|0;H=((R(H+(R(b[k+(e+128<<1)>>1]|0,r)|0)>>6,i)|0)+E>>D)+j|0;a[c+e>>0]=H>>>0>255?0-H>>31:H;e=e+1|0}while((e|0)!=(n|0))}h=h+1|0;if((h|0)==(g|0))break;else{c=c+d|0;k=k+128|0}}}}l=F;return}function Qd(e,f,g,h,i,j,k,m,n){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0;q=l;l=l+128|0;p=q;j=p;o=j+128|0;do{c[j>>2]=0;j=j+4|0}while((j|0)<(o|0));o=d[i+96+n>>0]|0;j=0;do{r=j;j=j+1|0;c[p+((r+o&31)<<2)>>2]=b[i+112+(n*10|0)+(j<<1)>>1]}while((j|0)!=4);if((m|0)>0){i=(k|0)>0;o=0;while(1){if(i){j=0;do{r=d[f+j>>0]|0;r=r+(c[p+(r>>>3<<2)>>2]|0)|0;a[e+j>>0]=r>>>0>255?0-r>>31:r;j=j+1|0}while((j|0)!=(k|0))}o=o+1|0;if((o|0)==(m|0))break;else{f=f+h|0;e=e+g|0}}}l=q;return}function Rd(e,f,g,h,i,j,k,l,m,n,o,p){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0;r=i+112+(m*10|0)|0;q=c[i+100+(m<<2)>>2]|0;if((q|0)!=1){if(c[j>>2]|0){p=b[r>>1]|0;if((l|0)>0){o=0;do{s=(d[f+(R(o,h)|0)>>0]|0)+p|0;a[e+(R(o,g)|0)>>0]=s>>>0>255?0-s>>31:s;o=o+1|0}while((o|0)!=(l|0));o=1}else o=1}else o=0;if(c[j+8>>2]|0){n=b[r>>1]|0;k=k+-1|0;if((l|0)>0){p=0;do{s=(d[f+((R(p,h)|0)+k)>>0]|0)+n|0;a[e+((R(p,g)|0)+k)>>0]=s>>>0>255?0-s>>31:s;p=p+1|0}while((p|0)!=(l|0))}}if(!q){n=k;p=l;k=0}else{s=k;t=9}}else{s=k;o=0;t=9}if((t|0)==9){if(c[j+4>>2]|0){p=b[r>>1]|0;if((o|0)<(s|0)){k=o;do{t=(d[f+k>>0]|0)+p|0;a[e+k>>0]=t>>>0>255?0-t>>31:t;k=k+1|0}while((k|0)!=(s|0));k=1}else k=1}else k=0;if(c[j+12>>2]|0){j=b[r>>1]|0;p=l+-1|0;q=R(p,g)|0;r=R(p,h)|0;if((o|0)<(s|0)){n=o;do{l=(d[f+(n+r)>>0]|0)+j|0;a[e+(n+q)>>0]=l>>>0>255?0-l>>31:l;n=n+1|0}while((n|0)!=(s|0));n=s}else n=s}else{n=s;p=l}}Zd(e,f,g,h,i,n,p,m,o,k);return}function Sd(e,f,g,h,i,j,k,l,m,n,o,p){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;v=i+112+(m*10|0)|0;z=c[i+100+(m<<2)>>2]|0;G=(z|0)!=1;if(G){if(c[j>>2]|0){t=b[v>>1]|0;if((l|0)>0){s=0;do{D=(d[f+(R(s,h)|0)>>0]|0)+t|0;a[e+(R(s,g)|0)>>0]=D>>>0>255?0-D>>31:D;s=s+1|0}while((s|0)!=(l|0));u=1}else u=1}else u=0;if(c[j+8>>2]|0){t=b[v>>1]|0;k=k+-1|0;if((l|0)>0){s=0;do{D=(d[f+((R(s,h)|0)+k)>>0]|0)+t|0;a[e+((R(s,g)|0)+k)>>0]=D>>>0>255?0-D>>31:D;s=s+1|0}while((s|0)!=(l|0))}}if(!z){D=k;w=0;B=0}else{x=u;y=9}}else{x=0;y=9}if((y|0)==9){if(c[j+4>>2]|0){t=b[v>>1]|0;if((x|0)<(k|0)){s=x;do{D=(d[f+s>>0]|0)+t|0;a[e+s>>0]=D>>>0>255?0-D>>31:D;s=s+1|0}while((s|0)!=(k|0));w=1}else w=1}else w=0;if(c[j+12>>2]|0){v=b[v>>1]|0;l=l+-1|0;t=R(l,g)|0;u=R(l,h)|0;if((x|0)<(k|0)){s=x;do{D=(d[f+(s+u)>>0]|0)+v|0;a[e+(s+t)>>0]=D>>>0>255?0-D>>31:D;s=s+1|0}while((s|0)!=(k|0));D=k;u=x;B=1}else{D=k;u=x;B=1}}else{D=k;u=x;B=1}}Zd(e,f,g,h,i,D,l,m,u,w);C=(z|0)==2;if(!(C&(a[p>>0]|0)==0)){s=p+1|0;k=(z|0)==3;if(k&(a[s>>0]|0)==0)if(!(c[j+4>>2]|0)){t=(c[j+8>>2]|0)==0;A=1;y=0;z=s}else{t=0;A=1;y=0;z=s}else{t=0;A=k;y=0;z=s}}else{if(!(c[j>>2]|0))k=(c[j+4>>2]|0)==0;else k=0;t=0;A=0;y=k&1;z=p+1|0}v=t&1;m=p+2|0;if(C&(a[m>>0]|0)==0?(c[j+8>>2]|0)==0:0)k=(c[j+12>>2]|0)==0;else k=0;x=k&1;i=p+3|0;if(A&(a[i>>0]|0)==0?(c[j>>2]|0)==0:0)k=(c[j+12>>2]|0)==0;else k=0;t=k&1;if(G&(a[n>>0]|0)!=0?(E=y+w|0,F=l-t|0,(E|0)<(F|0)):0){k=E;do{a[e+(R(k,g)|0)>>0]=a[f+(R(k,h)|0)>>0]|0;k=k+1|0}while((k|0)!=(F|0))}if(G&(a[n+1>>0]|0)!=0?(H=v+w|0,I=l-x|0,(H|0)<(I|0)):0){s=D+-1|0;k=H;do{a[e+(s+(R(k,g)|0))>>0]=a[f+(s+(R(k,h)|0))>>0]|0;k=k+1|0}while((k|0)!=(I|0))}if(B&(a[o>>0]|0)!=0?(r=y+u|0,J=D-v|0,(r|0)<(J|0)):0)do{a[e+r>>0]=a[f+r>>0]|0;r=r+1|0}while((r|0)!=(J|0));if(B&(a[o+1>>0]|0)!=0?(q=t+u|0,K=D-x|0,(q|0)<(K|0)):0){k=l+-1|0;r=R(k,h)|0;k=R(k,g)|0;do{a[e+(q+k)>>0]=a[f+(q+r)>>0]|0;q=q+1|0}while((q|0)!=(K|0))}if(C&(a[p>>0]|0)!=0)a[e>>0]=a[f>>0]|0;r=D+-1|0;if(A&(a[z>>0]|0)!=0)a[e+r>>0]=a[f+r>>0]|0;q=l+-1|0;if(C&(a[m>>0]|0)!=0){K=e+(r+(R(q,g)|0))|0;a[K>>0]=a[f+(r+(R(q,h)|0))>>0]|0}if(A&(a[i>>0]|0)!=0){g=e+(R(q,g)|0)|0;a[g>>0]=a[f+(R(q,h)|0)>>0]|0}return}function Td(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Yd(a,b,1,c,d,e,f);return}function Ud(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Yd(a,1,b,c,d,e,f);return}function Vd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;Xd(a,b,1,c,d,e);return}function Wd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;Xd(a,1,b,c,d,e);return}function Xd(b,e,f,g,h,i){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;u=f<<2;v=R(e,-2)|0;w=0-e|0;t=0;while(1){p=c[g+(t<<2)>>2]|0;if((p|0)>=1){q=0-p|0;r=(a[h+t>>0]|0)==0;s=(a[i+t>>0]|0)==0;n=0;o=b;while(1){k=o+w|0;m=d[k>>0]|0;l=d[o>>0]|0;j=(d[o+v>>0]|0)+4-(d[o+e>>0]|0)+(l-m<<2)>>3;j=(j|0)<(q|0)?q:(j|0)>(p|0)?p:j;m=j+m|0;if(r)a[k>>0]=m>>>0>255?0-m>>31:m;j=l-j|0;if(s)a[o>>0]=j>>>0>255?0-j>>31:j;n=n+1|0;if((n|0)==4)break;else o=o+f|0}}t=t+1|0;if((t|0)==2)break;else b=b+u|0}return}function Yd(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0;aa=R(e,-3)|0;ba=R(e,-2)|0;ca=0-e|0;M=e<<1;N=f*3|0;O=N+aa|0;P=N+ba|0;Q=N-e|0;S=N+M|0;T=N+e|0;U=g>>3;V=g>>2;W=R(e,-4)|0;X=e*3|0;Y=N+W|0;Z=N+X|0;_=(g>>1)+g>>3;$=f<<2;L=0;while(1){m=a[b+aa>>0]|0;n=a[b+ba>>0]|0;o=a[b+ca>>0]|0;k=o&255;z=(m&255)-((n&255)<<1)+k|0;z=(z|0)>-1?z:0-z|0;u=a[b+M>>0]|0;t=a[b+e>>0]|0;s=a[b>>0]|0;l=s&255;B=(u&255)-((t&255)<<1)+l|0;B=(B|0)>-1?B:0-B|0;p=d[b+Q>>0]|0;A=(d[b+O>>0]|0)-((d[b+P>>0]|0)<<1)+p|0;A=(A|0)>-1?A:0-A|0;q=d[b+N>>0]|0;C=(d[b+S>>0]|0)-((d[b+T>>0]|0)<<1)+q|0;C=(C|0)>-1?C:0-C|0;v=B+z|0;w=C+A|0;K=c[h+(L<<2)>>2]|0;y=a[i+L>>0]|0;D=a[j+L>>0]|0;a:do if((w+v|0)<(g|0)){x=(K*5|0)+1>>1;J=(d[b+W>>0]|0)-k|0;r=a[b+X>>0]|0;I=(r&255)-l|0;if((((((I|0)>-1?I:0-I|0)+((J|0)>-1?J:0-J|0)|0)<(U|0)?(J=k-l|0,(((J|0)>-1?J:0-J|0)|0)<(x|0)):0)?(J=(d[b+Y>>0]|0)-p|0,I=(d[b+Z>>0]|0)-q|0,(((I|0)>-1?I:0-I|0)+((J|0)>-1?J:0-J|0)|0)<(U|0)):0)?(J=p-q|0,((v<<1|0)<(V|0)?(((J|0)>-1?J:0-J|0)|0)<(x|0):0)&(w<<1|0)<(V|0)):0){z=K<<1;x=y<<24>>24==0;y=0-z|0;w=D<<24>>24==0;k=0;v=b;while(1){q=m&255;p=n&255;o=o&255;n=s&255;m=t&255;l=u&255;if(x){K=d[v+W>>0]|0;J=((q+4+m+(o+p+n<<1)|0)>>>3)-o|0;a[v+ca>>0]=((J|0)<(y|0)?y:(J|0)>(z|0)?z:J)+o;J=((q+2+p+o+n|0)>>>2)-p|0;a[v+ba>>0]=((J|0)<(y|0)?y:(J|0)>(z|0)?z:J)+p;K=((q*3|0)+4+p+o+n+(K<<1)>>3)-q|0;a[v+aa>>0]=((K|0)<(y|0)?y:(K|0)>(z|0)?z:K)+q}if(w){K=((p+4+l+(n+o+m<<1)|0)>>>3)-n|0;a[v>>0]=((K|0)<(y|0)?y:(K|0)>(z|0)?z:K)+n;K=((o+2+n+m+l|0)>>>2)-m|0;a[v+e>>0]=((K|0)<(y|0)?y:(K|0)>(z|0)?z:K)+m;K=((o+4+n+m+(l*3|0)+((r&255)<<1)|0)>>>3)-l|0;a[v+M>>0]=((K|0)<(y|0)?y:(K|0)>(z|0)?z:K)+l}l=v+f|0;k=k+1|0;if((k|0)==4)break a;v=l;m=a[l+aa>>0]|0;n=a[l+ba>>0]|0;o=a[l+ca>>0]|0;s=a[l>>0]|0;t=a[l+e>>0]|0;u=a[l+M>>0]|0;r=a[l+X>>0]|0}}H=K>>1;I=K*10|0;J=0-K|0;G=y<<24>>24==0;F=D<<24>>24==0;E=G&(A+z|0)<(_|0);D=0-H|0;A=F&(C+B|0)<(_|0);k=0;z=b;while(1){x=m&255;y=z+ba|0;w=n&255;r=z+ca|0;v=o&255;p=s&255;q=z+e|0;o=t&255;n=u&255;l=((p-v|0)*9|0)+8+(R(o-w|0,-3)|0)>>4;if((((l|0)>-1?l:0-l|0)|0)<(I|0)){m=(l|0)<(J|0)?J:(l|0)>(K|0)?K:l;l=m+v|0;if(G)a[r>>0]=l>>>0>255?0-l>>31:l;l=p-m|0;if(F)a[z>>0]=l>>>0>255?0-l>>31:l;if(E){C=((x+1+v|0)>>>1)-w+m>>1;C=((C|0)<(D|0)?D:(C|0)>(H|0)?H:C)+w|0;a[y>>0]=C>>>0>255?0-C>>31:C}if(A){C=((p+1+n|0)>>>1)-o-m>>1;C=((C|0)<(D|0)?D:(C|0)>(H|0)?H:C)+o|0;a[q>>0]=C>>>0>255?0-C>>31:C}}l=z+f|0;k=k+1|0;if((k|0)==4)break a;z=l;m=a[l+aa>>0]|0;n=a[l+ba>>0]|0;o=a[l+ca>>0]|0;s=a[l>>0]|0;t=a[l+e>>0]|0;u=a[l+M>>0]|0}}while(0);L=L+1|0;if((L|0)==2)break;else b=b+$|0}return}function Zd(e,f,g,h,i,j,k,l,m,n){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;o=c[i+100+(l<<2)>>2]|0;v=a[1891+(o<<2)>>0]|0;w=a[1891+(o<<2)+2>>0]|0;if((n|0)<(k|0)){u=R((a[1891+(o<<2)+3>>0]|0)+n|0,h)|0;x=(m|0)<(j|0);t=R(n,g)|0;r=R((a[1891+(o<<2)+1>>0]|0)+n|0,h)|0;s=n;n=R(n,h)|0;while(1){if(x){p=r+v|0;q=u+w|0;o=m;do{y=a[f+(o+n)>>0]|0;A=a[f+(p+o)>>0]|0;z=a[f+(q+o)>>0]|0;y=(b[i+112+(l*10|0)+(d[1907+(((y&255)>(A&255)?3:((y<<24>>24!=A<<24>>24)<<31>>31)+2|0)+((y&255)>(z&255)?1:(y<<24>>24!=z<<24>>24)<<31>>31))>>0]<<1)>>1]|0)+(y&255)|0;a[e+(o+t)>>0]=y>>>0>255?0-y>>31:y;o=o+1|0}while((o|0)!=(j|0))}s=s+1|0;if((s|0)==(k|0))break;else{t=t+g|0;u=u+h|0;r=r+h|0;n=n+h|0}}}return}function _d(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=c[b+136>>2]|0;j=1<>2]|0)+13080>>2];o=j+-1|0;k=o&e;l=(o&f|0)!=0;i=(a[n+309>>0]|0)!=0|l;b=i&1;c[n+31296>>2]=b;m=(a[n+308>>0]|0)!=0|(k|0)!=0;c[n+31292>>2]=m&1;if(!(o&(f|e)))i=d[n+311>>0]|0;else i=m&i&1;c[n+31300>>2]=i;if((k+g|0)==(j|0))b=(a[n+310>>0]|0)!=0&(l^1)&1;c[n+31308>>2]=b;if(!b)b=0;else b=(g+e|0)<(c[n+312>>2]|0);c[n+31304>>2]=b&1;c[n+31288>>2]=(h+f|0)<(c[n+316>>2]|0)&m&1;return}function $d(b,d,e,f,g,h,i,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0;q=l;l=l+64|0;m=1<>2]|0)+1620>>2]|0)>2:0){n=c[b+136>>2]|0;d=c[n+31236>>2]|0;n=c[n+31240>>2]|0;o=m;h=0;e=1}else{n=e;o=f;m=g;h=i;e=0}_d(b,d,n,o,m);ae(b,d,n,o,m,e,h,j,p);h=p+(j*12|0)|0;d=p+(j*12|0)+10|0;if((g+f|0)==12&(a[d>>0]|0)==3)a[d>>0]=1;c[k>>2]=c[h>>2];c[k+4>>2]=c[h+4>>2];c[k+8>>2]=c[h+8>>2];l=q;return}function ae(e,f,g,h,i,j,k,m,n){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0;Fa=l;l=l+16|0;Ba=Fa+4|0;Aa=Fa;r=c[e+136>>2]|0;ya=c[e+3508>>2]|0;Ca=c[ya+20>>2]|0;ya=c[ya+16>>2]|0;na=e+200|0;p=c[na>>2]|0;oa=c[p+13156>>2]|0;T=c[r+31288>>2]|0;q=c[r+31292>>2]|0;qa=c[r+31300>>2]|0;s=c[r+31296>>2]|0;D=c[r+31308>>2]|0;ra=f+-1|0;U=i+g|0;sa=U+-1|0;E=h+f|0;wa=E+-1|0;ta=g+-1|0;Ea=e+2428|0;o=c[e+3036>>2]|0;if((c[Ea>>2]|0)==1)Da=o;else Da=c[e+3036+((o>>>0>(c[e+3040>>2]|0)>>>0&1)<<2)>>2]|0;k=(j|0)==0&(k|0)==1;if(k){j=c[r+31248>>2]|0;switch(j|0){case 7:case 6:case 2:{o=0;p=0;t=10;break}default:t=5}}else t=5;do if((t|0)==5){j=e+204|0;o=c[(c[j>>2]|0)+1620>>2]&255;if(!((q|0)==0|((ra>>o|0)==(f>>o|0)?(sa>>o|0)==(g>>o|0):0))){o=c[p+13084>>2]|0;o=(R(sa>>o,oa)|0)+(ra>>o)|0;q=(a[ya+(o*12|0)+10>>0]|0)!=0;p=q&1;if(q){q=ya+(o*12|0)|0;c[n>>2]=c[q>>2];c[n+4>>2]=c[q+4>>2];c[n+8>>2]=c[q+8>>2];if(!m)break;else o=1}else o=0}else{o=0;p=0}if(k){j=c[r+31248>>2]|0;t=10}else t=12}while(0);a:do if((t|0)==10){switch(j|0){case 5:case 4:case 1:{q=0;t=24;break a}default:{}}j=e+204|0;t=12}while(0);b:do if((t|0)==12){r=c[(c[j>>2]|0)+1620>>2]&255;if(!((s|0)==0|((wa>>r|0)==(f>>r|0)?(ta>>r|0)==(g>>r|0):0))){j=c[(c[na>>2]|0)+13084>>2]|0;k=(R(ta>>j,oa)|0)+(wa>>j)|0;r=a[ya+(k*12|0)+10>>0]|0;s=r<<24>>24!=0;q=s&1;if(s){s=ya+(k*12|0)|0;c:do if(p|0?(j=(R(sa>>j,oa)|0)+(ra>>j)|0,v=ya+(j*12|0)|0,v=d[v>>0]|d[v+1>>0]<<8|d[v+2>>0]<<16|d[v+3>>0]<<24,x=ya+(j*12|0)+4|0,x=d[x>>0]|d[x+1>>0]<<8|d[x+2>>0]<<16|d[x+3>>0]<<24,z=a[ya+(j*12|0)+8>>0]|0,B=a[ya+(j*12|0)+9>>0]|0,u=d[s>>0]|d[s+1>>0]<<8|d[s+2>>0]<<16|d[s+3>>0]<<24,w=ya+(k*12|0)+4|0,w=d[w>>0]|d[w+1>>0]<<8|d[w+2>>0]<<16|d[w+3>>0]<<24,y=a[ya+(k*12|0)+8>>0]|0,A=a[ya+(k*12|0)+9>>0]|0,r<<24>>24==(a[ya+(j*12|0)+10>>0]|0)):0){switch(r<<24>>24){case 3:{if(!((u|0)==(v|0)?y<<24>>24==z<<24>>24:0))break c;if(A<<24>>24==B<<24>>24)j=(w|0)==(x|0);else break c;break}case 1:{if(y<<24>>24==z<<24>>24)j=(u|0)==(v|0);else break c;break}case 2:{if(A<<24>>24==B<<24>>24)j=(w|0)==(x|0);else break c;break}default:break c}if(j){t=24;break b}}while(0);B=n+(o*12|0)|0;c[B>>2]=c[s>>2];c[B+4>>2]=c[s+4>>2];c[B+8>>2]=c[s+8>>2];if((o|0)!=(m|0)){o=o+1|0;t=24}}else t=24}else{q=0;t=24}}while(0);d:do if((t|0)==24){e:do if(((D|0)!=0?(C=c[na>>2]|0,N=c[C+13084>>2]|0,O=R(ta>>N,oa)|0,P=O+(E>>N)|0,Q=a[ya+(P*12|0)+10>>0]|0,Q<<24>>24!=0):0)?(E|0)<(c[C+13120>>2]|0):0){D=c[C+13080>>2]|0;if(((ta>>D|0)>=(g>>D|0)?(E>>D|0)>=(f>>D|0):0)?(z=c[(c[e+204>>2]|0)+1684>>2]|0,B=c[C+13072>>2]|0,C=c[C+13164>>2]|0,A=C+2|0,D=c[z+((R(g>>B&C,A)|0)+(f>>B&C)<<2)>>2]|0,(c[z+((R(ta>>B&C,A)|0)+(E>>B&C)<<2)>>2]|0)>(D|0)):0)break;D=c[(c[e+204>>2]|0)+1620>>2]&255;if(!((E>>D|0)==(f>>D|0)?(ta>>D|0)==(g>>D|0):0)){k=ya+(P*12|0)|0;f:do if(q|0?(O=O+(wa>>N)|0,G=ya+(O*12|0)|0,G=d[G>>0]|d[G+1>>0]<<8|d[G+2>>0]<<16|d[G+3>>0]<<24,I=ya+(O*12|0)+4|0,I=d[I>>0]|d[I+1>>0]<<8|d[I+2>>0]<<16|d[I+3>>0]<<24,K=a[ya+(O*12|0)+8>>0]|0,M=a[ya+(O*12|0)+9>>0]|0,F=d[k>>0]|d[k+1>>0]<<8|d[k+2>>0]<<16|d[k+3>>0]<<24,H=ya+(P*12|0)+4|0,H=d[H>>0]|d[H+1>>0]<<8|d[H+2>>0]<<16|d[H+3>>0]<<24,J=a[ya+(P*12|0)+8>>0]|0,L=a[ya+(P*12|0)+9>>0]|0,Q<<24>>24==(a[ya+(O*12|0)+10>>0]|0)):0){switch(Q<<24>>24){case 3:{if(!((F|0)==(G|0)?J<<24>>24==K<<24>>24:0))break f;if(L<<24>>24==M<<24>>24)j=(H|0)==(I|0);else break f;break}case 1:{if(J<<24>>24==K<<24>>24)j=(F|0)==(G|0);else break f;break}case 2:{if(L<<24>>24==M<<24>>24)j=(H|0)==(I|0);else break f;break}default:break f}if(j)break e}while(0);Q=n+(o*12|0)|0;c[Q>>2]=c[k>>2];c[Q+4>>2]=c[k+4>>2];c[Q+8>>2]=c[k+8>>2];if((o|0)==(m|0))break d;o=o+1|0}}while(0);g:do if(((T|0)!=0?(S=c[na>>2]|0,ba=c[S+13084>>2]|0,ca=ra>>ba,da=(R(U>>ba,oa)|0)+ca|0,ea=a[ya+(da*12|0)+10>>0]|0,ea<<24>>24!=0):0)?(U|0)<(c[S+13124>>2]|0):0){T=c[S+13080>>2]|0;if(((U>>T|0)>=(g>>T|0)?(ra>>T|0)>=(f>>T|0):0)?(O=c[(c[e+204>>2]|0)+1684>>2]|0,Q=c[S+13072>>2]|0,S=c[S+13164>>2]|0,P=S+2|0,T=c[O+((R(g>>Q&S,P)|0)+(f>>Q&S)<<2)>>2]|0,(c[O+((R(U>>Q&S,P)|0)+(ra>>Q&S)<<2)>>2]|0)>(T|0)):0)break;T=c[(c[e+204>>2]|0)+1620>>2]&255;if(!((ra>>T|0)==(f>>T|0)?(U>>T|0)==(g>>T|0):0)){k=ya+(da*12|0)|0;h:do if(p|0?(ca=(R(sa>>ba,oa)|0)+ca|0,W=ya+(ca*12|0)|0,W=d[W>>0]|d[W+1>>0]<<8|d[W+2>>0]<<16|d[W+3>>0]<<24,Y=ya+(ca*12|0)+4|0,Y=d[Y>>0]|d[Y+1>>0]<<8|d[Y+2>>0]<<16|d[Y+3>>0]<<24,_=a[ya+(ca*12|0)+8>>0]|0,aa=a[ya+(ca*12|0)+9>>0]|0,V=d[k>>0]|d[k+1>>0]<<8|d[k+2>>0]<<16|d[k+3>>0]<<24,X=ya+(da*12|0)+4|0,X=d[X>>0]|d[X+1>>0]<<8|d[X+2>>0]<<16|d[X+3>>0]<<24,Z=a[ya+(da*12|0)+8>>0]|0,$=a[ya+(da*12|0)+9>>0]|0,ea<<24>>24==(a[ya+(ca*12|0)+10>>0]|0)):0){switch(ea<<24>>24){case 3:{if(!((V|0)==(W|0)?Z<<24>>24==_<<24>>24:0))break h;if($<<24>>24==aa<<24>>24)j=(X|0)==(Y|0);else break h;break}case 1:{if(Z<<24>>24==_<<24>>24)j=(V|0)==(W|0);else break h;break}case 2:{if($<<24>>24==aa<<24>>24)j=(X|0)==(Y|0);else break h;break}default:break h}if(j)break g}while(0);ea=n+(o*12|0)|0;c[ea>>2]=c[k>>2];c[ea+4>>2]=c[k+4>>2];c[ea+8>>2]=c[k+8>>2];if((o|0)==(m|0))break d;o=o+1|0}}while(0);i:do if(((qa|0)!=0?(ua=c[(c[na>>2]|0)+13084>>2]|0,va=R(ta>>ua,oa)|0,pa=ra>>ua,xa=va+pa|0,za=a[ya+(xa*12|0)+10>>0]|0,za<<24>>24!=0):0)?(qa=c[(c[e+204>>2]|0)+1620>>2]&255,!((ra>>qa|0)==(f>>qa|0)?(ta>>qa|0)==(g>>qa|0):0)):0){j:do if(p|0?(ga=ya+(xa*12|0)|0,ta=(R(sa>>ua,oa)|0)+pa|0,fa=ya+(ta*12|0)|0,fa=d[fa>>0]|d[fa+1>>0]<<8|d[fa+2>>0]<<16|d[fa+3>>0]<<24,ha=ya+(ta*12|0)+4|0,ha=d[ha>>0]|d[ha+1>>0]<<8|d[ha+2>>0]<<16|d[ha+3>>0]<<24,ja=a[ya+(ta*12|0)+8>>0]|0,la=a[ya+(ta*12|0)+9>>0]|0,ga=d[ga>>0]|d[ga+1>>0]<<8|d[ga+2>>0]<<16|d[ga+3>>0]<<24,ia=ya+(xa*12|0)+4|0,ia=d[ia>>0]|d[ia+1>>0]<<8|d[ia+2>>0]<<16|d[ia+3>>0]<<24,ka=a[ya+(xa*12|0)+8>>0]|0,ma=a[ya+(xa*12|0)+9>>0]|0,za<<24>>24==(a[ya+(ta*12|0)+10>>0]|0)):0){switch(za<<24>>24){case 3:{if(!((ga|0)==(fa|0)?ka<<24>>24==ja<<24>>24:0))break j;if(ma<<24>>24==la<<24>>24)j=(ia|0)==(ha|0);else break j;break}case 1:{if(ka<<24>>24==ja<<24>>24)j=(ga|0)==(fa|0);else break j;break}case 2:{if(ma<<24>>24==la<<24>>24)j=(ia|0)==(ha|0);else break j;break}default:break j}if(j)break i}while(0);if(q){j=ya+(xa*12|0)|0;wa=va+(wa>>ua)|0;q=ya+(wa*12|0)|0;q=d[q>>0]|d[q+1>>0]<<8|d[q+2>>0]<<16|d[q+3>>0]<<24;s=ya+(wa*12|0)+4|0;s=d[s>>0]|d[s+1>>0]<<8|d[s+2>>0]<<16|d[s+3>>0]<<24;u=a[ya+(wa*12|0)+8>>0]|0;v=a[ya+(wa*12|0)+9>>0]|0;p=d[j>>0]|d[j+1>>0]<<8|d[j+2>>0]<<16|d[j+3>>0]<<24;r=ya+(xa*12|0)+4|0;r=d[r>>0]|d[r+1>>0]<<8|d[r+2>>0]<<16|d[r+3>>0]<<24;t=a[ya+(xa*12|0)+8>>0]|0;k=a[ya+(xa*12|0)+9>>0]|0;k:do if(za<<24>>24==(a[ya+(wa*12|0)+10>>0]|0))switch(za<<24>>24){case 3:{if(!((p|0)==(q|0)?t<<24>>24==u<<24>>24:0)){k=0;break k}k=(r|0)==(s|0)?k<<24>>24==v<<24>>24:0;break k}case 1:{k=(p|0)==(q|0)?t<<24>>24==u<<24>>24:0;break k}case 2:{k=(r|0)==(s|0)?k<<24>>24==v<<24>>24:0;break k}default:{k=0;break k}}else k=0;while(0);if(!((o|0)!=4&(k^1)))break}else{if((o|0)==4){o=4;break}j=ya+(xa*12|0)|0}za=n+(o*12|0)|0;c[za>>2]=c[j>>2];c[za+4>>2]=c[j+4>>2];c[za+8>>2]=c[j+8>>2];if((o|0)==(m|0))break d;o=o+1|0}while(0);do if((a[e+3035>>0]|0)!=0?o>>>0<(c[e+3080>>2]|0)>>>0:0){c[Ba>>2]=0;c[Aa>>2]=0;k=be(e,f,g,h,i,0,Ba,0)|0;if(!(c[Ea>>2]|0))j=be(e,f,g,h,i,0,Aa,1)|0;else j=0;if(j|k){a[n+(o*12|0)+10>>0]=(j<<1)+k;b[n+(o*12|0)+8>>1]=0;j=n+(o*12|0)|0;Ba=c[Ba>>2]|0;b[j>>1]=Ba;b[j+2>>1]=Ba>>>16;j=n+(o*12|0)+4|0;Ba=c[Aa>>2]|0;b[j>>1]=Ba;b[j+2>>1]=Ba>>>16;j=(o|0)==(m|0);if(j)break d;else{o=((j^1)&1)+o|0;break}}else break}while(0);u=e+3080|0;j=c[u>>2]|0;l:do if((o|0)>1&(c[Ea>>2]|0)==0&o>>>0>>0){t=R(o+-1|0,o)|0;s=0;while(1){if((s|0)>=(t|0))break l;Ba=d[1912+(s<<1)>>0]|0;e=d[1912+(s<<1)+1>>0]|0;k=c[n+(Ba*12|0)>>2]|0;r=a[n+(Ba*12|0)+8>>0]|0;p=c[n+(e*12|0)+4>>2]|0;q=a[n+(e*12|0)+9>>0]|0;if(((a[n+(Ba*12|0)+10>>0]&1)!=0?(a[n+(e*12|0)+10>>0]&2)!=0:0)?!((k|0)==(p|0)?(c[Ca+64+(r<<24>>24<<2)>>2]|0)==(c[Ca+260+(q<<24>>24<<2)>>2]|0):0):0){a[n+(o*12|0)+8>>0]=r;a[n+(o*12|0)+9>>0]=q;a[n+(o*12|0)+10>>0]=3;c[n+(o*12|0)>>2]=k;c[n+(o*12|0)+4>>2]=p;if((o|0)==(m|0))break d;o=o+1|0;j=c[u>>2]|0}if(o>>>0>>0)s=s+1|0;else break}}while(0);if(o>>>0>>0){j=0;while(1){a[n+(o*12|0)+10>>0]=((c[Ea>>2]|0)==0&1)<<1|1;c[n+(o*12|0)>>2]=0;c[n+(o*12|0)+4>>2]=0;Ca=(j|0)<(Da|0)?j&255:0;a[n+(o*12|0)+8>>0]=Ca;a[n+(o*12|0)+9>>0]=Ca;if((o|0)==(m|0))break d;o=o+1|0;if(o>>>0>=(c[u>>2]|0)>>>0)break;else j=j+1|0}}}while(0);l=Fa;return}function be(d,e,f,g,h,i,j,k){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=l;l=l+32|0;q=x+12|0;v=x;w=d+200|0;o=c[w>>2]|0;r=c[o+13156>>2]|0;s=c[(c[d+3508>>2]|0)+36>>2]|0;do if(s){t=c[s+16>>2]|0;u=c[s+32>>2]|0;m=g+e|0;n=h+f|0;if(!t)m=0;else{p=c[o+13080>>2]|0;if(((f>>p|0)==(n>>p|0)?(n|0)<(c[o+13124>>2]|0):0)?(m|0)<(c[o+13120>>2]|0):0){p=m&-16;n=n&-16;if((a[d+140>>0]|0)==1)m=c[w>>2]|0;else m=o;m=c[m+13084>>2]|0;m=t+(((R(n>>m,r)|0)+(p>>m)|0)*12|0)|0;c[v>>2]=c[m>>2];c[v+4>>2]=c[m+4>>2];c[v+8>>2]=c[m+8>>2];m=Wc(d,s,p,n)|0;c[q>>2]=c[v>>2];c[q+4>>2]=c[v+4>>2];c[q+8>>2]=c[v+8>>2];m=ce(d,q,i,j,k,u,m)|0;if(m|0)break}n=(g>>1)+e&-16;m=(h>>1)+f&-16;w=c[(c[w>>2]|0)+13084>>2]|0;w=t+(((R(m>>w,r)|0)+(n>>w)|0)*12|0)|0;c[v>>2]=c[w>>2];c[v+4>>2]=c[w+4>>2];c[v+8>>2]=c[w+8>>2];m=Wc(d,s,n,m)|0;c[q>>2]=c[v>>2];c[q+4>>2]=c[v+4>>2];c[q+8>>2]=c[v+8>>2];m=ce(d,q,i,j,k,u,m)|0}}else{b[j>>1]=0;b[j+2>>1]=0>>>16;m=0}while(0);l=x;return m|0}function ce(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=c[(c[b+3508>>2]|0)+20>>2]|0;j=a[d+10>>0]|0;a:do if(j<<24>>24){if(!(j&1)){j=de(f,d+4|0,h,c[b+5816>>2]|0,p,g,e,i,1,a[d+9>>0]|0)|0;break}switch(j<<24>>24){case 1:{j=de(f,d,h,c[b+5816>>2]|0,p,g,e,i,0,a[d+8>>0]|0)|0;break a}case 3:break;default:{j=0;break a}}o=b+5816|0;k=0;n=0;do{l=c[p+(n*196|0)+192>>2]|0;b:do if((l|0)>0){m=c[o>>2]|0;j=0;while(1){if((c[p+(n*196|0)+64+(j<<2)>>2]|0)>(m|0))break;j=j+1|0;if((j|0)>=(l|0))break b}k=k+1|0}while(0);n=n+1|0}while((n|0)!=2);j=c[o>>2]|0;if(!k)if(!g){j=de(f,d,h,j,p,0,e,i,0,a[d+8>>0]|0)|0;break}else{j=de(f,d+4|0,h,j,p,g,e,i,1,a[d+9>>0]|0)|0;break}else if((a[b+3051>>0]|0)==1){j=de(f,d,h,j,p,g,e,i,0,a[d+8>>0]|0)|0;break}else{j=de(f,d+4|0,h,j,p,g,e,i,1,a[d+9>>0]|0)|0;break}}else j=0;while(0);return j|0}function de(a,d,e,f,g,h,i,j,k,l){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0;m=c[g+(h*196|0)+128+(i<<2)>>2]|0;do if((m|0)==(c[j+(k*196|0)+128+(l<<2)>>2]|0)){j=e-(c[j+(k*196|0)+64+(l<<2)>>2]|0)|0;e=f-(c[g+(h*196|0)+64+(i<<2)>>2]|0)|0;if((m|0)==0?(j|0)!=0&(j|0)!=(e|0):0){i=(j+128|0)>>>0>255?j>>31^127:j;m=i<<24>>24;j=(m|0)/2|0;e=(R((((i&255)<<24>>24>-2?j:0-j|0)+16384|0)/(m|0)|0,((e+128|0)>>>0>255?e>>31^127:e)<<24>>24)|0)+32>>6;e=(e|0)<-4096?-4096:(e|0)<4095?e:4095;m=R(e,b[d>>1]|0)|0;m=m+127+(m>>>31)|0;j=m>>8;b[a>>1]=(j+32768|0)>>>0>65535?m>>31^32767:j;d=R(e,b[d+2>>1]|0)|0;d=d+127+(d>>>31)|0;e=d>>8;j=1;e=((e+32768|0)>>>0>65535?d>>31^32767:e)&65535;break}b[a>>1]=b[d>>1]|0;j=1;e=b[d+2>>1]|0}else{b[a>>1]=0;j=0;e=0}while(0);b[a+2>>1]=e;return j|0}function ee(d,e,f,g,h,i,j,k,m,n,o){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;J=l;l=l+32|0;E=J;F=J+16|0;G=J+12|0;H=J+8|0;A=c[d+136>>2]|0;w=c[(c[d+3508>>2]|0)+16>>2]|0;B=d+200|0;q=c[B>>2]|0;x=c[q+13156>>2]|0;j=E;c[j>>2]=0;c[j+4>>2]=0;j=c[A+31292>>2]|0;y=c[A+31300>>2]|0;v=c[A+31296>>2]|0;s=c[A+31308>>2]|0;I=a[m+8+o>>0]|0;C=(o|0)==0&1;D=e+-1|0;r=h+f|0;if(((c[A+31288>>2]|0)!=0?(A=c[q+13084>>2]|0,(a[w+(((R(r>>A,x)|0)+(D>>A)|0)*12|0)+10>>0]|0)!=0):0)?(r|0)<(c[q+13124>>2]|0):0){A=c[q+13080>>2]|0;if((r>>A|0)>=(f>>A|0)?(D>>A|0)>=(e>>A|0):0){p=c[(c[d+204>>2]|0)+1684>>2]|0;z=c[q+13072>>2]|0;A=c[q+13164>>2]|0;t=A+2|0;i=c[p+((R(f>>z&A,t)|0)+(e>>z&A)<<2)>>2]|0;i=(c[p+((R(r>>z&A,t)|0)+(D>>z&A)<<2)>>2]|0)<=(i|0)&1}else i=1;k=(i|0)!=0}else k=0;p=r+-1|0;if(!j)i=0;else{i=c[q+13084>>2]|0;i=(a[w+(((R(p>>i,x)|0)+(D>>i)|0)*12|0)+10>>0]|0)!=0}z=k|i;if(k){A=c[q+13084>>2]|0;if((fe(d,D>>A,r>>A,o,F,o,I)|0)==0?(A=c[(c[B>>2]|0)+13084>>2]|0,(fe(d,D>>A,r>>A,C,F,o,I)|0)==0):0)L=13;else i=1}else L=13;do if((L|0)==13){if(i){A=c[(c[B>>2]|0)+13084>>2]|0;if(fe(d,D>>A,p>>A,o,F,o,I)|0){i=1;break}A=c[(c[B>>2]|0)+13084>>2]|0;if(fe(d,D>>A,p>>A,C,F,o,I)|0){i=1;break}}if(k){A=c[(c[B>>2]|0)+13084>>2]|0;if(ge(d,D>>A,r>>A,o,F,o,I)|0){i=1;break}A=c[(c[B>>2]|0)+13084>>2]|0;if(ge(d,D>>A,r>>A,C,F,o,I)|0){i=1;break}}if(i){A=c[(c[B>>2]|0)+13084>>2]|0;if(ge(d,D>>A,p>>A,o,F,o,I)|0){i=1;break}A=c[(c[B>>2]|0)+13084>>2]|0;if(ge(d,D>>A,p>>A,C,F,o,I)|0){i=1;break}}i=0}while(0);t=g+e|0;A=f+-1|0;if(((s|0)!=0?(u=c[B>>2]|0,s=c[u+13084>>2]|0,(a[w+(((R(A>>s,x)|0)+(t>>s)|0)*12|0)+10>>0]|0)!=0):0)?(t|0)<(c[u+13120>>2]|0):0){s=c[u+13080>>2]|0;if((A>>s|0)>=(f>>s|0)?(t>>s|0)>=(e>>s|0):0){q=c[(c[d+204>>2]|0)+1684>>2]|0;s=c[u+13072>>2]|0;u=c[u+13164>>2]|0;r=u+2|0;j=c[q+((R(f>>s&u,r)|0)+(e>>s&u)<<2)>>2]|0;j=(c[q+((R(A>>s&u,r)|0)+(t>>s&u)<<2)>>2]|0)<=(j|0)&1}else j=1;p=(j|0)!=0}else p=0;r=t+-1|0;if(!v)q=0;else{q=c[(c[B>>2]|0)+13084>>2]|0;q=(a[w+(((R(A>>q,x)|0)+(r>>q)|0)*12|0)+10>>0]|0)!=0}if(!y)j=0;else{j=c[(c[B>>2]|0)+13084>>2]|0;j=(a[w+(((R(A>>j,x)|0)+(D>>j)|0)*12|0)+10>>0]|0)!=0}if(p){y=c[(c[B>>2]|0)+13084>>2]|0;if((fe(d,t>>y,A>>y,o,G,o,I)|0)==0?(y=c[(c[B>>2]|0)+13084>>2]|0,(fe(d,t>>y,A>>y,C,G,o,I)|0)==0):0)L=37;else k=1}else L=37;do if((L|0)==37){if(q){y=c[(c[B>>2]|0)+13084>>2]|0;if(fe(d,r>>y,A>>y,o,G,o,I)|0){k=1;break}y=c[(c[B>>2]|0)+13084>>2]|0;if(fe(d,r>>y,A>>y,C,G,o,I)|0){k=1;break}}if(j){y=c[(c[B>>2]|0)+13084>>2]|0;if(fe(d,D>>y,A>>y,o,G,o,I)|0){k=1;break}y=c[(c[B>>2]|0)+13084>>2]|0;if(fe(d,D>>y,A>>y,C,G,o,I)|0){k=1;break}}k=0}while(0);do if(!z){if(k){c[F>>2]=c[G>>2];i=1}if(p){k=c[(c[B>>2]|0)+13084>>2]|0;k=ge(d,t>>k,A>>k,o,G,o,I)|0;if(k|0)break;k=c[(c[B>>2]|0)+13084>>2]|0;k=ge(d,t>>k,A>>k,C,G,o,I)|0}else k=0;if(!((k|0)!=0|q^1)){k=c[(c[B>>2]|0)+13084>>2]|0;k=ge(d,r>>k,A>>k,o,G,o,I)|0;if(k|0)break;k=c[(c[B>>2]|0)+13084>>2]|0;k=ge(d,r>>k,A>>k,C,G,o,I)|0}if(!((k|0)!=0|j^1)){k=c[(c[B>>2]|0)+13084>>2]|0;k=ge(d,D>>k,A>>k,o,G,o,I)|0;if(!k){k=c[(c[B>>2]|0)+13084>>2]|0;k=ge(d,D>>k,A>>k,C,G,o,I)|0}}}while(0);j=(i|0)!=0;if(j){c[E>>2]=c[F>>2];i=1}else i=0;do if(k){if((j?(b[F>>1]|0)==(b[G>>1]|0):0)?(b[F+2>>1]|0)==(b[G+2>>1]|0):0){K=i;L=63;break}c[E+(i<<2)>>2]=c[G>>2];if((i+1|0)>>>0<2){K=1;L=63}}else{K=i;L=63}while(0);if(((L|0)==63?(K|0)==(n|0)&(a[d+3035>>0]|0)!=0:0)?be(d,e,f,g,h,I,H,o)|0:0)c[E+(n<<2)>>2]=c[H>>2];L=m+(o<<2)|0;n=c[E+(n<<2)>>2]|0;b[L>>1]=n;b[L+2>>1]=n>>>16;l=J;return}function fe(d,f,g,h,i,j,k){d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0;m=c[d+3508>>2]|0;l=c[m+16>>2]|0;m=c[m+20>>2]|0;d=(R(c[(c[d+200>>2]|0)+13156>>2]|0,g)|0)+f|0;if((a[l+(d*12|0)+10>>0]&1<>0]<<2)>>2]|0)==(c[m+(j*196|0)+64+(k<<2)>>2]|0):0){d=l+(d*12|0)+(h<<2)|0;d=e[d>>1]|e[d+2>>1]<<16;b[i>>1]=d;b[i+2>>1]=d>>>16;d=1}else d=0;return d|0}function ge(d,f,g,h,i,j,k){d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0;q=d+3508|0;m=c[q>>2]|0;l=c[m+16>>2]|0;m=c[m+20>>2]|0;g=(R(c[(c[d+200>>2]|0)+13156>>2]|0,g)|0)+f|0;if((a[l+(g*12|0)+10>>0]&1<>2]|0,(c[m+(h*196|0)+128+(a[l+(g*12|0)+8+h>>0]<<2)>>2]|0)==(n|0)):0){f=l+(g*12|0)+(h<<2)|0;f=e[f>>1]|e[f+2>>1]<<16;b[i>>1]=f;b[i+2>>1]=f>>>16;if((n|0)==0?(o=c[q>>2]|0,p=c[o+20>>2]|0,o=c[p+(h*196|0)+64+(a[(c[o+16>>2]|0)+(g*12|0)+8+h>>0]<<2)>>2]|0,p=c[p+(j*196|0)+64+(k<<2)>>2]|0,(o|0)!=(p|0)):0){q=c[d+5816>>2]|0;k=q-o|0;k=k|0?k:1;p=q-p|0;k=(k+128|0)>>>0>255?k>>31^127:k;q=k<<24>>24;j=(q|0)/2|0;q=(R(((p+128|0)>>>0>255?p>>31^127:p)<<24>>24,(((k&255)<<24>>24>-2?j:0-j|0)+16384|0)/(q|0)|0)|0)+32>>6;q=(q|0)<-4096?-4096:(q|0)<4095?q:4095;j=R(q,f<<16>>16)|0;j=j+127+(j>>>31)|0;k=j>>8;b[i>>1]=(k+32768|0)>>>0>65535?j>>31^32767:k;q=R(q,f>>16)|0;q=q+127+(q>>>31)|0;f=q>>8;b[i+2>>1]=(f+32768|0)>>>0>65535?q>>31^32767:f;f=1}else f=1}else f=0;return f|0}function he(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=(c[b+136>>2]|0)+204|0;b=e+2188|0;do if(((b|0)!=(d|0)?(g=e+2184|0,(c[g>>2]|0)!=0):0)?((We(l)|0)&255)<<24>>24!=0:0){if(f){f=(Ye(l)|0)+1|0;b=c[g>>2]|0;if(b>>>0>>0){b=-1094995529;break}else k=b-f|0}else k=((d-b|0)/168|0)+-1|0;b=We(l)|0;f=Ye(l)|0;if(f>>>0<=32767){i=R(1-(b<<1&510)|0,f+1|0)|0;j=e+2188+(k*168|0)+4|0;if((c[j>>2]|0)<0){c[d+4>>2]=0;c[d>>2]=0;b=0;break}else{b=0;f=0;h=0}while(1){g=We(l)|0;a[d+136+f>>0]=g;if(!((g&255|0)==0?((We(l)|0)&255)<<24>>24==0:0)){if((h|0)<(c[j>>2]|0))g=(c[e+2188+(k*168|0)+8+(h<<2)>>2]|0)+i|0;else g=i;c[d+8+(f<<2)>>2]=g;f=f+1|0;b=(g>>>31)+b|0}if((h|0)<(c[j>>2]|0))h=h+1|0;else break}e=d+4|0;c[e>>2]=f;c[d>>2]=b;if((f|0)>1){b=1;do{h=c[d+8+(b<<2)>>2]|0;i=a[d+136+b>>0]|0;f=b;do{g=f;f=f+-1|0;j=d+8+(f<<2)|0;k=c[j>>2]|0;if((h|0)<(k|0)){c[d+8+(g<<2)>>2]=k;l=d+136+f|0;a[d+136+g>>0]=a[l>>0]|0;c[j>>2]=h;a[l>>0]=i}}while((g|0)>1);b=b+1|0}while((b|0)<(c[e>>2]|0));b=c[d>>2]|0}if(b>>>0>1){f=0;do{b=b+-1|0;l=d+8+(f<<2)|0;j=c[l>>2]|0;i=d+136+f|0;e=a[i>>0]|0;k=d+8+(b<<2)|0;c[l>>2]=c[k>>2];l=d+136+b|0;a[i>>0]=a[l>>0]|0;c[k>>2]=j;a[l>>0]=e;f=f+1|0}while(f>>>0<(c[d>>2]|0)>>>1>>>0);b=0}else b=0}else b=-1094995529}else m=25;while(0);if((m|0)==25){c[d>>2]=Ye(l)|0;g=Ye(l)|0;b=c[d>>2]|0;if((b|g)>>>0<=15){m=b+g|0;c[d+4>>2]=m;if(m){if(b|0){b=0;f=0;do{b=b+-1-(Ye(l)|0)|0;c[d+8+(f<<2)>>2]=b;a[d+136+f>>0]=We(l)|0;f=f+1|0}while(f>>>0<(c[d>>2]|0)>>>0)}if(g){b=0;f=0;do{b=b+1+(Ye(l)|0)|0;c[d+8+((c[d>>2]|0)+f<<2)>>2]=b;m=(We(l)|0)&255;a[(c[d>>2]|0)+f+(d+136)>>0]=m;f=f+1|0}while((f|0)!=(g|0));b=0}else b=0}else b=0}else b=-1094995529}return b|0}function ie(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;v=l;l=l+16|0;t=v;p=(c[b+136>>2]|0)+204|0;r=tf(13196)|0;c[t>>2]=r;u=r;a:do if(r){s=r+4|0;q=c[s>>2]|0;e=je(b)|0;if((e|0)>=0){c[q>>2]=0;g=q+72|0;c[g>>2]=1;o=Te(p,8)|0;f=q+4|0;c[f>>2]=o;do if((o|0)<=3){a[q+8>>0]=0;m=q+13120|0;c[m>>2]=Xe(p,32)|0;e=Xe(p,32)|0;n=q+13124|0;c[n>>2]=e;e=Ge(c[m>>2]|0,e,0,c[b+4>>2]|0)|0;if((e|0)>=0){k=Te(p,8)|0;o=q+52|0;c[o>>2]=k+8;if(!k){switch(c[f>>2]|0){case 0:{f=8;break}case 1:{f=0;break}case 2:{f=4;break}default:f=5}c[q+60>>2]=f;c[q+56>>2]=0;f=Sf(f)|0;if(f){c[q+13180>>2]=0;c[q+13168>>2]=0;k=d[f+5>>0]|0;c[q+13172>>2]=k;c[q+13176>>2]=k;k=d[f+6>>0]|0;c[q+13184>>2]=k;c[q+13188>>2]=k;c[q+64>>2]=8;if((c[g>>2]|0)>0){f=0;do{c[q+76+(f*12|0)>>2]=1;c[q+76+(f*12|0)+4>>2]=0;c[q+76+(f*12|0)+8>>2]=-1;f=f+1|0}while((f|0)<(c[g>>2]|0))}g=(Ye(p)|0)+3|0;f=q+13064|0;c[f>>2]=g;g=1<>2]=h+(c[m>>2]|0)&g;c[n>>2]=(c[n>>2]|0)+h&g;g=q+13068|0;c[g>>2]=Ye(p)|0;h=q+13072|0;c[h>>2]=(Ye(p)|0)+2;j=Ye(p)|0;k=c[h>>2]|0;i=q+13076|0;c[i>>2]=k+j;if(k>>>0<(c[f>>2]|0)>>>0){w=Ye(p)|0;j=q+13092|0;c[j>>2]=w;k=q+13088|0;c[k>>2]=w;a[q+12940>>0]=1;a[q+12941>>0]=We(p)|0;w=We(p)|0;c[q+68>>2]=w;if(w|0){w=q+13044|0;a[w>>0]=(Te(p,4)|0)+1;a[q+13045>>0]=(Te(p,4)|0)+1;x=(Ye(p)|0)+3|0;c[q+13048>>2]=x;c[q+13052>>2]=(Ye(p)|0)+x;if((d[w>>0]|0|0)>(c[o>>2]|0)){e=-1094995529;break}a[q+13056>>0]=We(p)|0}c[q+2184>>2]=0;a[q+12942>>0]=0;a[q+13060>>0]=1;a[q+13061>>0]=We(p)|0;c[q+160>>2]=0;c[q+164>>2]=1;if(We(p)|0?(x=We(p)|0,Ve(p,7),x|0):0){c[q+13096>>2]=We(p)|0;c[q+13100>>2]=We(p)|0;c[q+13104>>2]=We(p)|0;c[q+13108>>2]=We(p)|0;We(p)|0;c[q+13112>>2]=We(p)|0;We(p)|0;c[q+13116>>2]=We(p)|0;We(p)|0}m=c[m>>2]|0;c[q+12>>2]=m;n=c[n>>2]|0;c[q+16>>2]=n;f=c[f>>2]|0;x=(c[g>>2]|0)+f|0;c[q+13080>>2]=x;g=f+-1|0;c[q+13084>>2]=g;w=1<>x;c[q+13128>>2]=y;w=n+-1+w>>x;c[q+13132>>2]=w;c[q+13136>>2]=R(y,w)|0;c[q+13140>>2]=m>>f;c[q+13144>>2]=n>>f;w=c[h>>2]|0;c[q+13148>>2]=m>>w;c[q+13152>>2]=n>>w;c[q+13156>>2]=m>>g;c[q+13160>>2]=n>>g;w=x-w|0;c[q+13164>>2]=(1<>2]=((c[o>>2]|0)*6|0)+-48;if((((!(x>>>0>6?1:((1<>2]|0)>>>0<=w>>>0:0)?(c[j>>2]|0)>>>0<=w>>>0:0)?(c[i>>2]|0)>>>0<=(x>>>0<5?x:5)>>>0:0)?(ke(p)|0)>=0:0){h=b+272|0;e=c[h>>2]|0;if((e|0)!=0?(Sg(c[e+4>>2]|0,c[s>>2]|0,c[r+8>>2]|0)|0)==0:0){wf(t);e=0;break a}else e=0;do{f=b+400+(e<<2)|0;g=c[f>>2]|0;do if(g|0){if(c[c[g+4>>2]>>2]|0)break;wf(f)}while(0);e=e+1|0}while((e|0)!=256);e=c[h>>2]|0;do if(e|0){f=b+200|0;if((c[f>>2]|0)!=(c[e+4>>2]|0))break;x=b+1424|0;wf(x);y=uf(c[h>>2]|0)|0;c[x>>2]=y;if(y|0)break;c[f>>2]=0}while(0);wf(h);c[h>>2]=u;e=0;break a}}else e=-1094995529}else e=-22}else e=-1094995529}}else e=-1094995529;while(0);wf(t)}}else e=-12;while(0);l=v;return e|0}function je(b){b=b|0;var d=0,e=0,f=0,g=0;e=tf(468)|0;if(!e)d=-12;else{f=c[e+4>>2]|0;c[f+4>>2]=1;g=f+8|0;c[g>>2]=1;a[f>>0]=0;c[f+348>>2]=1;d=0;do{c[f+352+(d<<2)>>2]=1;c[f+380+(d<<2)>>2]=0;c[f+408+(d<<2)>>2]=-1;d=d+1|0}while((d|0)<(c[g>>2]|0));c[f+436>>2]=0;c[f+440>>2]=1;a[f+444>>0]=0;d=b+208|0;wf(d);c[d>>2]=e;d=0}return d|0}function ke(a){a=a|0;var b=0;b=c[a+12>>2]|0;return b-(le(a)|0)|0}function le(a){a=a|0;return c[a+8>>2]|0}function me(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;M=l;l=l+16|0;L=M+4|0;H=M;K=(c[b+136>>2]|0)+204|0;i=lf(1692)|0;c[H>>2]=i;a:do if(!i)d=-12;else{J=qf(i,1692,6,0,0)|0;c[L>>2]=J;I=J;if(!J){hf(H);d=-12;break}a[i+53>>0]=1;f=i+44|0;c[f>>2]=1;g=i+48|0;c[g>>2]=1;h=i+52|0;a[h>>0]=1;a[i+57>>0]=0;c[i+60>>2]=0;c[i+64>>2]=0;a[i+1629>>0]=2;J=Ye(K)|0;b:do if((J>>>0<=255?(d=Ye(K)|0,c[i>>2]=d,d>>>0<=31):0)?(e=c[b+272+(d<<2)>>2]|0,(e|0)!=0):0){G=c[e+4>>2]|0;a[i+41>>0]=We(K)|0;a[i+39>>0]=We(K)|0;c[i+1624>>2]=Te(K,3)|0;a[i+4>>0]=We(K)|0;a[i+5>>0]=We(K)|0;c[i+8>>2]=(Ye(K)|0)+1;c[i+12>>2]=(Ye(K)|0)+1;c[i+16>>2]=oe(K)|0;a[i+20>>0]=We(K)|0;a[i+21>>0]=We(K)|0;F=(We(K)|0)&255;a[i+22>>0]=F;d=i+24|0;c[d>>2]=0;if(F<<24>>24)c[d>>2]=Ye(K)|0;F=oe(K)|0;c[i+28>>2]=F;if((F+12|0)>>>0<=24?(F=oe(K)|0,c[i+32>>2]=F,(F+12|0)>>>0<=24):0){a[i+36>>0]=We(K)|0;a[i+37>>0]=We(K)|0;a[i+38>>0]=We(K)|0;a[i+40>>0]=We(K)|0;F=i+42|0;a[F>>0]=We(K)|0;a[i+43>>0]=We(K)|0;if(!(a[F>>0]|0))o=c[H>>2]|0;else{c[f>>2]=(Ye(K)|0)+1;d=(Ye(K)|0)+1|0;c[g>>2]=d;e=c[f>>2]|0;if(!e){d=-1094995529;break}if((d|0)==0?1:(e|0)>=(c[G+13120>>2]|0)){d=-1094995529;break}if((d|0)>=(c[G+13124>>2]|0)){d=-1094995529;break}E=i+1648|0;c[E>>2]=of(e,4)|0;F=of(c[g>>2]|0,4)|0;c[i+1652>>2]=F;if((c[E>>2]|0)==0|(F|0)==0){d=-12;break}F=(We(K)|0)&255;a[h>>0]=F;if(!(F<<24>>24)){F=c[f>>2]|0;d=F+-1|0;if((F|0)>1){i=c[H>>2]|0;f=i+1648|0;j=i+44|0;e=0;g=0;d=0;while(1){h=(Ye(K)|0)+1|0;c[(c[f>>2]|0)+(e<<2)>>2]=h;g=$g(h|0,0,g|0,d|0)|0;h=C;e=e+1|0;d=(c[j>>2]|0)+-1|0;if((e|0)>=(d|0))break;else d=h}}else{h=0;g=0}e=c[G+13128>>2]|0;f=((e|0)<0)<<31>>31;if(!(f>>>0>h>>>0|(f|0)==(h|0)&e>>>0>g>>>0)){d=-1094995529;break}j=Zg(e|0,f|0,g|0,h|0)|0;c[(c[i+1648>>2]|0)+(d<<2)>>2]=j;j=c[H>>2]|0;i=j+48|0;F=c[i>>2]|0;d=F+-1|0;if((F|0)>1){f=j+1652|0;e=0;g=0;d=0;while(1){h=(Ye(K)|0)+1|0;c[(c[f>>2]|0)+(e<<2)>>2]=h;g=$g(h|0,0,g|0,d|0)|0;h=C;e=e+1|0;d=(c[i>>2]|0)+-1|0;if((e|0)>=(d|0))break;else d=h}}else{h=0;g=0}e=c[G+13132>>2]|0;f=((e|0)<0)<<31>>31;if(!(f>>>0>h>>>0|(f|0)==(h|0)&e>>>0>g>>>0)){d=-1094995529;break}F=Zg(e|0,f|0,g|0,h|0)|0;c[(c[j+1652>>2]|0)+(d<<2)>>2]=F}F=(We(K)|0)&255;o=c[H>>2]|0;a[o+53>>0]=F}a[o+54>>0]=We(K)|0;F=(We(K)|0)&255;a[o+55>>0]=F;if((F<<24>>24?(a[o+56>>0]=We(K)|0,F=(We(K)|0)&255,a[o+57>>0]=F,F<<24>>24==0):0)?(F=o+60|0,c[F>>2]=(oe(K)|0)<<1,E=(oe(K)|0)<<1,c[o+64>>2]=E,(E+13|0)>>>0>26?1:((c[F>>2]|0)+13|0)>>>0>26):0){d=-1094995529;break}F=(We(K)|0)&255;a[o+68>>0]=F;if(F<<24>>24){d=o+69|0;pe(d);d=qe(b,d,G)|0;if((d|0)<0)break}else d=0;a[o+1617>>0]=We(K)|0;F=(Ye(K)|0)+2|0;c[o+1620>>2]=F;E=G+13080|0;if(F>>>0<=(c[E>>2]|0)>>>0){a[o+1628>>0]=We(K)|0;if(We(K)|0?(F=We(K)|0,Te(K,7)|0,F|0):0)re(b,o);j=o+44|0;i=o+1656|0;c[i>>2]=of((c[j>>2]|0)+1|0,4)|0;m=o+48|0;k=o+1660|0;c[k>>2]=of((c[m>>2]|0)+1|0,4)|0;F=G+13128|0;D=of(c[F>>2]|0,4)|0;n=o+1664|0;c[n>>2]=D;if((c[i>>2]|0)!=0?!((c[k>>2]|0)==0|(D|0)==0):0){do if(a[o+52>>0]|0){f=o+1648|0;e=c[f>>2]|0;if(!e){c[f>>2]=of(c[j>>2]|0,4)|0;c[o+1652>>2]=of(c[m>>2]|0,4)|0;e=c[f>>2]|0;if(!e){d=-12;break b}}h=c[o+1652>>2]|0;if(!h){d=-12;break b}f=c[j>>2]|0;if((f|0)>0){g=0;do{D=g;g=g+1|0;B=c[F>>2]|0;c[e+(D<<2)>>2]=((R(B,g)|0)/(f|0)|0)-((R(B,D)|0)/(f|0)|0);f=c[j>>2]|0}while((g|0)<(f|0))}e=c[m>>2]|0;if((e|0)<=0)break;g=G+13132|0;f=0;do{D=f;f=f+1|0;B=c[g>>2]|0;c[h+(D<<2)>>2]=((R(B,f)|0)/(e|0)|0)-((R(B,D)|0)/(e|0)|0);e=c[m>>2]|0}while((f|0)<(e|0))}while(0);i=c[i>>2]|0;c[i>>2]=0;if((c[j>>2]|0)>0){f=c[o+1648>>2]|0;e=0;g=0;do{g=(c[f+(e<<2)>>2]|0)+g|0;e=e+1|0;c[i+(e<<2)>>2]=g}while((e|0)<(c[j>>2]|0))}g=c[k>>2]|0;c[g>>2]=0;if((c[m>>2]|0)>0){f=c[o+1652>>2]|0;e=0;h=0;do{h=(c[f+(e<<2)>>2]|0)+h|0;e=e+1|0;c[g+(e<<2)>>2]=h}while((e|0)<(c[m>>2]|0))}e=c[F>>2]|0;if((e|0)>0){h=c[n>>2]|0;f=0;g=0;do{f=(g>>>0>(c[i+(f<<2)>>2]|0)>>>0&1)+f|0;c[h+(g<<2)>>2]=f;g=g+1|0;e=c[F>>2]|0}while((g|0)<(e|0))}B=R(c[G+13132>>2]|0,e)|0;A=o+1668|0;c[A>>2]=of(B,4)|0;e=o+1672|0;c[e>>2]=of(B,4)|0;f=o+1676|0;c[f>>2]=of(B,4)|0;D=G+13164|0;g=(c[D>>2]|0)+2|0;g=of(R(g,g)|0,4)|0;c[o+1688>>2]=g;if(!(c[A>>2]|0)){d=-12;break}if(!(c[e>>2]|0)){d=-12;break}if((c[f>>2]|0)==0|(g|0)==0){d=-12;break}if((B|0)>0){y=c[H>>2]|0;n=y+44|0;o=y+1656|0;p=y+48|0;q=y+1660|0;r=y+1652|0;s=c[q>>2]|0;t=c[y+1648>>2]|0;u=c[o>>2]|0;v=c[y+1668>>2]|0;w=c[y+1672>>2]|0;x=y+1652|0;y=y+1648|0;m=0;do{k=c[F>>2]|0;z=(m|0)%(k|0)|0;A=(m|0)/(k|0)|0;f=c[n>>2]|0;e=0;while(1){if((e|0)>=(f|0)){j=0;break}g=e+1|0;if(z>>>0<(c[(c[o>>2]|0)+(g<<2)>>2]|0)>>>0){j=e;break}else e=g}f=c[p>>2]|0;e=0;while(1){if((e|0)>=(f|0)){i=0;break}g=e+1|0;if(A>>>0<(c[(c[q>>2]|0)+(g<<2)>>2]|0)>>>0){i=e;break}else e=g}if((j|0)>0){g=c[(c[x>>2]|0)+(i<<2)>>2]|0;h=c[y>>2]|0;e=0;f=0;do{e=(R(c[h+(f<<2)>>2]|0,g)|0)+e|0;f=f+1|0}while((f|0)!=(j|0))}else e=0;if((i|0)>0){g=c[r>>2]|0;f=0;do{e=(R(c[g+(f<<2)>>2]|0,k)|0)+e|0;f=f+1|0}while((f|0)!=(i|0))}A=R(c[t+(j<<2)>>2]|0,A-(c[s+(i<<2)>>2]|0)|0)|0;A=e+z+A-(c[u+(j<<2)>>2]|0)|0;c[v+(m<<2)>>2]=A;c[w+(A<<2)>>2]=m;m=m+1|0}while((m|0)!=(B|0))}f=c[H>>2]|0;u=f+48|0;g=c[u>>2]|0;if((g|0)>0){v=f+44|0;w=f+1660|0;t=f+1656|0;x=f+1676|0;s=f+1668|0;e=0;h=0;f=c[v>>2]|0;do if((f|0)>0){p=c[w>>2]|0;r=h+1|0;q=p+(r<<2)|0;p=p+(h<<2)|0;o=0;g=c[q>>2]|0;do{i=c[p>>2]|0;h=o;o=o+1|0;if(i>>>0>>0){m=c[t>>2]|0;n=m+(o<<2)|0;m=m+(h<<2)|0;f=c[n>>2]|0;do{h=c[m>>2]|0;if(h>>>0>>0){j=c[x>>2]|0;k=c[s>>2]|0;g=h;do{c[j+(c[k+((R(c[F>>2]|0,i)|0)+g<<2)>>2]<<2)>>2]=e;g=g+1|0;f=c[n>>2]|0}while(g>>>0>>0);g=c[q>>2]|0}i=i+1|0}while(i>>>0>>0);f=c[v>>2]|0}e=e+1|0}while((o|0)<(f|0));h=r;g=c[u>>2]|0}else h=h+1|0;while((h|0)<(g|0));f=c[H>>2]|0}else e=0;m=of(e,4)|0;c[f+1680>>2]=m;if(!m){d=-12;break}n=f+48|0;e=c[n>>2]|0;if((e|0)>0){k=f+44|0;o=f+1660|0;p=f+1656|0;j=0;g=c[k>>2]|0;do{if((g|0)>0){h=(c[o>>2]|0)+(j<<2)|0;i=c[p>>2]|0;e=0;do{B=R(c[F>>2]|0,c[h>>2]|0)|0;c[m+((R(g,j)|0)+e<<2)>>2]=(c[i+(e<<2)>>2]|0)+B;e=e+1|0;g=c[k>>2]|0}while((e|0)<(g|0));e=c[n>>2]|0}j=j+1|0}while((j|0)<(e|0))}r=(c[E>>2]|0)-(c[G+13072>>2]|0)|0;g=c[f+1688>>2]|0;e=c[D>>2]|0;c[f+1684>>2]=g+(e+3<<2);do if((e|0)>-2){f=0;e=e+2|0;do{c[g+((R(e,f)|0)<<2)>>2]=-1;c[g+(f<<2)>>2]=-1;f=f+1|0;h=c[D>>2]|0;e=h+2|0}while((f|0)<(e|0));if((h|0)<0)break;q=c[H>>2]|0;n=q+1668|0;o=r<<1;p=(r|0)>0;q=q+1684|0;m=0;e=h;while(1){if((e|0)>=0){i=m>>r;j=c[n>>2]|0;k=c[q>>2]|0;h=0;while(1){f=c[j+((R(c[F>>2]|0,i)|0)+(h>>r)<<2)>>2]<>2]=f;e=c[D>>2]|0;if((h|0)<(e|0))h=h+1|0;else break}}if((m|0)<(e|0))m=m+1|0;else break}}while(0);if((ke(K)|0)<0)break;d=b+400+(J<<2)|0;wf(d);c[d>>2]=I;d=0;break a}else d=-12}else d=-1094995529}else d=-1094995529}else d=-1094995529;while(0);wf(L)}while(0);l=M;return d|0}function ne(a,b){a=a|0;b=b|0;var d=0;a=l;l=l+16|0;d=a;c[d>>2]=b;hf(b+1648|0);hf(b+1652|0);hf(b+1656|0);hf(b+1660|0);hf(b+1664|0);hf(b+1668|0);hf(b+1672|0);hf(b+1680|0);hf(b+1676|0);hf(b+1688|0);hf(d);l=a;return}function oe(a){a=a|0;return $e(a)|0}function pe(b){b=b|0;var c=0,d=0,e=0;c=0;do{d=b+(c<<6)|0;e=d+16|0;do{a[d>>0]=16;d=d+1|0}while((d|0)<(e|0));a[b+1536+c>>0]=16;a[b+1542+c>>0]=16;c=c+1|0}while((c|0)!=6);d=b+384|0;c=1936;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+448|0;c=1936;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+512|0;c=1936;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+576|0;c=2e3;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+640|0;c=2e3;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+704|0;c=2e3;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+768|0;c=1936;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+832|0;c=1936;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+896|0;c=1936;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+960|0;c=2e3;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+1024|0;c=2e3;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+1088|0;c=2e3;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+1152|0;c=1936;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+1216|0;c=1936;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+1280|0;c=1936;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+1344|0;c=2e3;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+1408|0;c=2e3;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));d=b+1472|0;c=2e3;e=d+64|0;do{a[d>>0]=a[c>>0]|0;d=d+1|0;c=c+1|0}while((d|0)<(e|0));return}function qe(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;o=(c[b+136>>2]|0)+204|0;l=0;a:while(1){p=(l|0)>0?64:16;q=(l|0)>1;r=l+-2|0;m=(l|0)==3?3:1;j=1<<(l<<1)+4;j=(j|0)<64?j:64;n=(l|0)==0;k=0;do{if(!(((We(o)|0)&255)<<24>>24)){b=Ye(o)|0;if(b|0){if(k>>>0>>0){b=-1094995529;break a}b=k-b|0;fh(e+(l*384|0)+(k<<6)|0,e+(l*384|0)+(b<<6)|0,p|0)|0;if(q)a[e+1536+(r*6|0)+k>>0]=a[e+1536+(r*6|0)+b>>0]|0}}else{if(q){g=(oe(o)|0)+8|0;a[e+1536+(r*6|0)+k>>0]=g;b=0}else{b=0;g=8}do{if(n){h=(d[430+b>>0]|0)<<2;i=414+b|0}else{h=(d[510+b>>0]|0)<<3;i=446+b|0}i=(d[i>>0]|0)+h|0;g=(g+256+(oe(o)|0)|0)%256|0;a[e+(l*384|0)+(k<<6)+i>>0]=g;b=b+1|0}while((b|0)<(j|0))}k=k+m|0}while((k|0)<6);l=l+1|0;if((l|0)>=4){s=16;break}}if((s|0)==16)if((c[f+4>>2]|0)==3){b=0;do{a[e+1216+b>>0]=a[e+832+b>>0]|0;a[e+1280+b>>0]=a[e+896+b>>0]|0;a[e+1408+b>>0]=a[e+1024+b>>0]|0;a[e+1472+b>>0]=a[e+1088+b>>0]|0;b=b+1|0}while((b|0)!=64);a[e+1543>>0]=a[e+1537>>0]|0;a[e+1544>>0]=a[e+1538>>0]|0;a[e+1546>>0]=a[e+1540>>0]|0;a[e+1547>>0]=a[e+1541>>0]|0;b=0}else b=0;return b|0}function re(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;g=(c[b+136>>2]|0)+204|0;if(a[e+21>>0]|0)a[e+1629>>0]=(Ye(g)|0)+2;a[e+1630>>0]=We(g)|0;f=(We(g)|0)&255;a[e+1631>>0]=f;if(f<<24>>24){a[e+1632>>0]=Ye(g)|0;b=Ye(g)|0;f=e+1633|0;a[f>>0]=b;if((b&255)>>>0<5){b=0;while(1){a[e+1634+b>>0]=$e(g)|0;a[e+1639+b>>0]=$e(g)|0;if((b|0)<(d[f>>0]|0))b=b+1|0;else{h=6;break}}}}else h=6;if((h|0)==6){a[e+1644>>0]=Ye(g)|0;a[e+1645>>0]=Ye(g)|0}return}function se(a){a=a|0;var b=0;b=a+136|0;do te(a);while((ue((c[b>>2]|0)+204|0)|0)!=0);return 1}function te(a){a=a|0;var d=0,e=0,f=0,g=0;f=(c[a+136>>2]|0)+204|0;e=0;do{d=Te(f,8)|0;e=d+e|0}while((d|0)==255);d=0;do{g=Te(f,8)|0;d=g+d|0}while((g|0)==255);a:do if((c[a+3500>>2]|0)!=39)if((e|0)==132){xe(a);break}else{Ve(f,d<<3);break}else switch(e|0){case 256:{xe(a);break a}case 257:{b[a+7776>>1]=Te(f,16)|0;break a}default:{Ve(f,d<<3);break a}}while(0);return}function ue(a){a=a|0;if((ve(a)|0)>0)a=(Ue(a,8)|0)!=128;else a=0;return a&1|0}function ve(a){a=a|0;var b=0;b=c[a+12>>2]|0;return b-(we(a)|0)|0}function we(a){a=a|0;return c[a+8>>2]|0}function xe(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;f=(c[b+136>>2]|0)+204|0;h=(Te(f,8)|0)&255;g=b+7720|0;e=0;do{switch(h<<24>>24){case 0:{a[g>>0]=1;d=0;do{a[b+7672+(e<<4)+d>>0]=Te(f,8)|0;d=d+1|0}while((d|0)!=16);break}case 1:{Ve(f,16);break}case 2:{Ve(f,32);break}default:{}}e=e+1|0}while((e|0)!=3);return}function ye(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;d=c[b+52>>2]|0;f=a+60|0;if((d|0)>0)if((c[f>>2]|0)==0?(d=lf(d)|0,c[f>>2]=d,(d|0)==0):0)d=-12;else e=5;else{c[f>>2]=0;e=5}if((e|0)==5){e=a+12|0;c[e>>2]=b;c[a+424>>2]=0;c[a+800>>2]=1;d=a+912|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;d=a+936|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+928|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=Ca[c[b+76>>2]&7](a)|0;if((d|0)<0){hf(f);c[e>>2]=0}else d=0}return d|0}function ze(a){a=a|0;var b=0,d=0,e=0;if(a|0){b=a+12|0;d=c[b>>2]|0;if(d|0?(e=c[d+92>>2]|0,e|0):0)Ca[e&7](a)|0;c[a+796>>2]=0;hf(a+60|0);c[b>>2]=0;c[a+808>>2]=0}return 0}function Ae(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;if((f|0)>0){j=(e|0)==0;h=0;do{i=d+(R(h,g)|0)|0;i=Ha[b&1](a,i)|0;if(!j)c[e+(h<<2)>>2]=i;h=h+1|0}while((h|0)!=(f|0))}return 0}function Be(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;if((f|0)>0){h=(e|0)==0;g=0;do{i=Fa[b&1](a,d,g,0)|0;if(!h)c[e+(g<<2)>>2]=i;g=g+1|0}while((g|0)!=(f|0))}return 0}function Ce(b,f,g){b=b|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=Sf(c[f+76>>2]|0)|0;m=l+4|0;a:do if(!(a[m>>0]|0))b=0;else{n=f+64|0;i=l+5|0;j=f+68|0;k=l+6|0;h=0;while(1){b=(R((((e[l+8+(h<<1)>>1]|0)>>>11&15)+8&65535)>>>3,c[n>>2]|0)|0)+31&-32;if((h+-1|0)>>>0<2){b=0-(0-b>>d[i>>0])|0;c[f+32+(h<<2)>>2]=b;g=0-(0-((c[j>>2]|0)+31&-32)>>d[k>>0])|0}else{c[f+32+(h<<2)>>2]=b;g=(c[j>>2]|0)+31&-32}b=sf((R(b,g)|0)+32|0)|0;c[f+304+(h<<2)>>2]=b;if(!b){b=-1;break a}c[f+(h<<2)>>2]=c[b+4>>2];h=h+1|0;if((h|0)>=(d[m>>0]|0)){b=0;break}}}while(0);return b|0}function De(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;ah(a|0,0,976)|0;e=(b|0)!=0;if(e){d=c[b+8>>2]|0;c[a+48>>2]=c[b+12>>2]}else d=-1;c[a+8>>2]=d;c[a+100>>2]=0;c[a+104>>2]=1;c[a+888>>2]=0;c[a+892>>2]=1;c[a+896>>2]=0;c[a+900>>2]=1;c[a+476>>2]=1;c[a+816>>2]=1;c[a+820>>2]=1;c[a+220>>2]=0;c[a+224>>2]=1;c[a+136>>2]=-1;c[a+416>>2]=-1;d=a+696|0;c[d>>2]=0;c[d+4>>2]=-2147483648;if((e?(f=c[b+52>>2]|0,(f|0)!=0):0)?(f=lf(f)|0,c[a+60>>2]=f,(f|0)==0):0)d=-12;else d=0;return d|0}function Ee(a){a=a|0;var b=0;b=cf(976)|0;if(b){if((De(b,a)|0)<0){gf(b);b=0}}else b=0;return b|0}function Fe(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=l;l=l+80|0;i=j;f=i;g=e;h=f+80|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));h=a+12|0;g=c[h>>2]|0;do if((g|0)!=0?(c[g+8>>2]|0)==0:0){c[d>>2]=0;f=c[a+124>>2]|0;g=c[a+128>>2]|0;if(g|f|0?Ge(f,g,0,0)|0:0){f=-22;break}Pf(b);f=c[h>>2]|0;if(((c[f+16>>2]&32|0)==0?(c[e+28>>2]|0)==0:0)?(c[a+808>>2]&1|0)==0:0){f=0;break}f=Fa[c[f+88>>2]&1](a,b,d,i)|0;if(!(c[d>>2]|0)){Pf(b);break}else{d=a+424|0;c[d>>2]=(c[d>>2]|0)+1;break}}else f=-22;while(0);l=j;return f|0}function Ge(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((a|0)>0&(b|0)>0?(a+128|0)>>>0<(268435455/((b+128|0)>>>0)|0)>>>0:0)a=0;else a=-22;return a|0}function He(a,b){a=a|0;b=b|0;return 0}function Ie(a,b,c){a=a|0;b=b|0;c=c|0;return Je(a,b,c)|0}function Je(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=a+8|0;if(!(c[k>>2]|0)){g=c[a+116>>2]|0;h=c[a+120>>2]|0;if((Ge(g,h,0,0)|0)>=0?(j=c[a+136>>2]|0,(j|0)>=0):0){f=b+64|0;e=b+68|0;if((c[f>>2]|0)>=1?(c[e>>2]|0)>=1:0)e=1;else{i=c[a+792>>2]|0;l=0-(0-(c[a+124>>2]|0)>>i)|0;c[f>>2]=(g|0)>(l|0)?g:l;i=0-(0-(c[a+128>>2]|0)>>i)|0;c[e>>2]=(h|0)>(i|0)?h:i;e=0}c[b+76>>2]=j;f=e;i=8}else e=-22}else{f=1;i=8}if((i|0)==8){e=ta[c[a+476>>2]&1](a,b,d)|0;if(!(c[k>>2]|f)){c[b+64>>2]=c[a+116>>2];c[b+68>>2]=c[a+120>>2]}}return e|0}function Ke(a,b,d){a=a|0;b=b|0;d=d|0;c[b+4>>2]=a;return Ie(a,c[b>>2]|0,d)|0}function Le(a,b){a=a|0;b=b|0;a=c[b>>2]|0;if(a|0)Pf(a);return}function Me(a){a=a|0;return}function Ne(a,b,c){a=a|0;b=b|0;c=c|0;return}function Oe(a,b,c){a=a|0;b=b|0;c=c|0;return}function Pe(a){a=a|0;var b=0;b=a+8|0;c[b>>2]=0;c[b+4>>2]=-2147483648;b=a+16|0;c[b>>2]=0;c[b+4>>2]=-2147483648;b=a+64|0;c[b>>2]=-1;c[b+4>>2]=-1;b=a+72|0;c[b>>2]=0;c[b+4>>2]=0;b=a+32|0;c[a>>2]=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;return}function Qe(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0;g=a+16|0;c[a+12>>2]=b;c[a+20>>2]=b+e;h=b+1|0;c[g>>2]=h;e=(d[b>>0]|0)<<18;c[a>>2]=e;f=b+2|0;c[g>>2]=f;e=(d[h>>0]|0)<<10|e;c[a>>2]=e;c[g>>2]=b+3;c[a>>2]=(d[f>>0]|0)<<2|e|2;c[a+4>>2]=510;return}function Re(){if(!(c[694]|0)){Se();c[694]=1}return}function Se(){var b=0,c=0,e=0,f=0,g=0;b=0;while(1)if(b){f=(b&65280|0)==0;a[4917+b>>0]=(f?8:0)-(d[2511+(f?b:b>>>8)>>0]|0);b=b+1|0;if((b|0)==512){f=0;break}else continue}else{a[4917+b>>0]=9;b=1;continue}do{c=f<<1;b=0;do{g=a[2064+(f<<2)+b>>0]|0;e=(b<<7)+c|0;a[5429+(e|1)>>0]=g;a[5429+e>>0]=g;b=b+1|0}while((b|0)!=4);e=(d[2320+f>>0]|0)<<1;a[5941+(c+128)>>0]=e;a[5941+(c+129)>>0]=e|1;e=128-c|0;if(!f){b=0;c=1}else{c=(d[2384+f>>0]|0)<<1;b=(c|1)&255;c=c&255}a[5941+(e+-1)>>0]=c;a[5941+(e+-2)>>0]=b;f=f+1|0}while((f|0)!=64);b=6197;c=2448;e=b+63|0;do{a[b>>0]=a[c>>0]|0;b=b+1|0;c=c+1|0}while((b|0)<(e|0));return}function Te(a,b){a=a|0;b=b|0;var e=0,f=0,g=0;e=a+8|0;g=c[e>>2]|0;f=c[a+16>>2]|0;a=(c[a>>2]|0)+(g>>>3)|0;a=(ch(d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0)|0)<<(g&7)>>>(32-b|0);b=g+b|0;c[e>>2]=f>>>0>b>>>0?b:f;return a|0}function Ue(a,b){a=a|0;b=b|0;var e=0;e=c[a+8>>2]|0;a=(c[a>>2]|0)+(e>>>3)|0;return (ch(d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0)|0)<<(e&7)>>>(32-b|0)|0}function Ve(a,b){a=a|0;b=b|0;var d=0;d=a+8|0;a=c[a+16>>2]|0;b=(c[d>>2]|0)+b|0;c[d>>2]=a>>>0>b>>>0?b:a;return}function We(a){a=a|0;var b=0,e=0,f=0;e=a+8|0;f=c[e>>2]|0;b=(d[(c[a>>2]|0)+(f>>>3)>>0]|0)<<(f&7)>>>7&1;c[e>>2]=((f|0)<(c[a+16>>2]|0)&1)+f;return b|0}function Xe(a,b){a=a|0;b=b|0;var c=0;do if(b)if((b|0)<26){a=Te(a,b)|0;break}else{b=b+-16|0;c=(Te(a,16)|0)<>>0>65535;e=b?e>>>16:e;b=b?16:0;c=(e&65280|0)==0;b=31-(d[2511+(c?e:e>>>8)>>0]|0)-(c?b:b|8)|0;_e(a,b);return (Xe(a,b+1|0)|0)+-1|0}function Ze(a){a=a|0;var b=0,d=0;b=l;l=l+32|0;d=b;c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];c[d+12>>2]=c[a+12>>2];c[d+16>>2]=c[a+16>>2];a=Xe(d,32)|0;l=b;return a|0}function _e(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+8|0;e=c[d>>2]|0;f=0-e|0;a=(c[a+16>>2]|0)-e|0;c[d>>2]=((b|0)<(f|0)?f:(a|0)<(b|0)?a:b)+e;return}function $e(a){a=a|0;a=Ye(a)|0;return ((a&1|0)==0?0-(a>>>1)|0:(a+1|0)>>>1)|0}function af(b,c,d,e,f,g,h,i,j,k){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;if((j|0)!=0&(k|0)!=0){if((i|0)<(k|0)){s=(i|0)>(0-g|0);m=1-g|0;r=c+(R(0-e|0,i)|0)+(R(m,e)|0)|0;c=s?c:r;m=s?i:m}else{m=k+-1|0;c=c+(R(0-e|0,i)|0)+(R(m,e)|0)|0}if((h|0)<(j|0)){r=(h|0)>(0-f|0);s=1-f|0;i=r?h:s;c=r?c:c+(s-h)|0}else{s=j+-1|0;i=s;c=c+(s-h)|0}t=(m|0)<0;l=t?0-m|0:0;r=(i|0)<0;s=r?0-i|0:0;h=k-m|0;h=(h|0)<(g|0)?h:g;p=j-i|0;q=(p|0)<(f|0);o=q?p:f;n=o-s|0;i=c+(s+(R(l,e)|0))|0;c=b+s|0;if(t){j=0;do{fh(c|0,i|0,n|0)|0;c=c+d|0;j=j+1|0}while((j|0)<(l|0))}else j=0;if((j|0)<(h|0)){b=m+-1-k|0;l=~g;l=R(~j-((b|0)>(l|0)?b:l)|0,d)|0;b=c;while(1){fh(b|0,i|0,n|0)|0;i=i+e|0;j=j+1|0;if((j|0)>=(h|0))break;else b=b+d|0}c=c+l|0}else h=j;j=i+(0-e)|0;if((h|0)<(g|0)){b=R(g-h|0,d)|0;i=h;h=c;while(1){fh(h|0,j|0,n|0)|0;i=i+1|0;if((i|0)==(g|0))break;else h=h+d|0}c=c+b|0}if(g|0){j=o+-1|0;h=c+(0-((R(g,d)|0)+s))|0;while(1){g=g+-1|0;if(r){i=h+s|0;c=0;do{a[h+c>>0]=a[i>>0]|0;c=c+1|0}while((c|0)<(s|0))}if(q){i=h+j|0;c=p;do{a[h+c>>0]=a[i>>0]|0;c=c+1|0}while((c|0)<(f|0))}if(!g)break;else h=h+d|0}}}return}function bf(a,b){a=a|0;b=b|0;c[a>>2]=1;return}function cf(a){a=a|0;var b=0,d=0;d=(c[66]|0)+-32|0;b=a;while(1){if(d>>>0>>0){a=0;break}a=Ig(b)|0;if((b|0)!=0|(a|0)!=0)break;else b=1}return a|0}function df(a,b){a=a|0;b=b|0;if(((c[66]|0)+-32|0)>>>0>>0)a=0;else a=Qg(a,((b|0)==0&1)+b|0)|0;return a|0}function ef(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;f=g;if(!((ff(d,b,f)|0)==0?(f=c[f>>2]|0,e=df(a,f)|0,!((f|0)!=0&(e|0)==0)):0)){gf(a);e=0}l=g;return e|0}function ff(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=R(b,a)|0;if((a|0)!=0&(b|a)>>>0>65535?((e>>>0)/(a>>>0)|0|0)!=(b|0):0)a=-22;else{c[d>>2]=e;a=0}return a|0}function gf(a){a=a|0;Og(a);return}function hf(a){a=a|0;gf(c[a>>2]|0);c[a>>2]=0;return}function jf(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)!=0?(2147483647/(c>>>0)|0)>>>0>b>>>0:0)a=df(a,R(c,b)|0)|0;else a=0;return a|0}function kf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=ef(c[a>>2]|0,b,d)|0;c[a>>2]=e;return ((d|0)!=0&((b|0)!=0&(e|0)==0)?-12:0)|0}function lf(a){a=a|0;var b=0;b=cf(a)|0;if(b|0)ah(b|0,0,a|0)|0;return b|0}function mf(a,b,c){a=a|0;b=b|0;c=c|0;nf(a,b,c);return}function nf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((c[b>>2]|0)>>>0<=d>>>0){e=((d*17|0)>>>4)+32|0;d=e>>>0>d>>>0?e:d;gf(c[a>>2]|0);e=cf(d)|0;c[a>>2]=e;c[b>>2]=(e|0)==0?0:d}return}function of(a,b){a=a|0;b=b|0;if((b|0)!=0?(2147483647/(b>>>0)|0)>>>0>a>>>0:0)a=cf(R(b,a)|0)|0;else a=0;return a|0}function pf(a,b){a=a|0;b=b|0;if((b|0)!=0?(2147483647/(b>>>0)|0)>>>0>a>>>0:0)a=lf(R(b,a)|0)|0;else a=0;return a|0}function qf(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=l;l=l+16|0;h=j;g=lf(24)|0;c[h>>2]=g;i=g;do if(g){c[g>>2]=a;c[g+4>>2]=b;c[g+12>>2]=d|0?d:7;c[g+16>>2]=e;c[g+8>>2]=1;if(f&1|0){g=g+20|0;c[g>>2]=c[g>>2]|1}d=lf(12)|0;if(!d){hf(h);d=0;break}else{c[d>>2]=i;c[d+4>>2]=a;c[d+8>>2]=b;break}}else d=0;while(0);l=j;return d|0}function rf(a,b){a=a|0;b=b|0;gf(b);return}function sf(a){a=a|0;var b=0,d=0,e=0;e=l;l=l+16|0;d=e;b=cf(a)|0;c[d>>2]=b;if(b){a=qf(b,a,7,0,0)|0;if(!a){hf(d);a=0}}else a=0;l=e;return a|0}function tf(a){a=a|0;var b=0;b=sf(a)|0;if(!b)b=0;else ah(c[b+4>>2]|0,0,a|0)|0;return b|0}function uf(a){a=a|0;var b=0;b=lf(12)|0;if(!b)b=0;else{c[b>>2]=c[a>>2];c[b+4>>2]=c[a+4>>2];c[b+8>>2]=c[a+8>>2];vf((c[a>>2]|0)+8|0,1)|0}return b|0}function vf(a,b){a=a|0;b=b|0;var d=0;d=c[a>>2]|0;c[a>>2]=d+b;return d+b|0}function wf(a){a=a|0;var b=0,d=0,e=0,f=0;f=l;l=l+16|0;d=f;if((a|0?(e=c[a>>2]|0,e|0):0)?(b=c[e>>2]|0,c[d>>2]=b,hf(a),b,(vf(b+8|0,-1)|0)==0):0){ya[c[b+12>>2]&15](c[b+16>>2]|0,c[b>>2]|0);hf(d)}l=f;return}function xf(a){a=a|0;return c[a>>2]|0}function yf(a,b){a=a|0;b=b|0;var d=0;d=lf(20)|0;if(!d)d=0;else{c[d+12>>2]=a;c[d+16>>2]=b|0?b:4;zf(d+4|0)}return d|0}function zf(a){a=a|0;c[a>>2]=1;return}function Af(a){a=a|0;var b=0;if((a|0?(b=c[a>>2]|0,b|0):0)?(c[a>>2]=0,(vf(b+4|0,-1)|0)==0):0)Bf(b);return}function Bf(a){a=a|0;var b=0,d=0,e=0,f=0;e=l;l=l+16|0;b=e;d=e+4|0;c[b>>2]=a;if(c[a>>2]|0)do{f=c[a>>2]|0;c[d>>2]=f;c[a>>2]=c[f+16>>2];f=c[d>>2]|0;ya[c[f+8>>2]&15](c[f+4>>2]|0,c[f>>2]|0);hf(d);a=c[b>>2]|0}while((c[a>>2]|0)!=0);hf(b);l=e;return}function Cf(a){a=a|0;var b=0,d=0,e=0,f=0;b=Df(a)|0;a:do if(!b){b=a+4|0;e=a+8|0;b:do if((c[b>>2]|0)<=(c[e>>2]|0))while(1){d=xf(b)|0;if((d|0)>(xf(e)|0))break b;d=Df(a)|0;if(d|0){f=6;break a}}while(0);b=Ef(a)|0}else{d=b;f=6}while(0);do if((f|0)==6){b=d+16|0;Ff(c[b>>2]|0);c[b>>2]=0;b=qf(c[d>>2]|0,c[a+12>>2]|0,8,d,0)|0;if(!b){Ff(d);b=0;break}else{vf(a+4|0,1)|0;break}}while(0);return b|0}function Df(a){a=a|0;var b=0,d=0,e=0;b=0;d=c[a>>2]|0;while(1){if((d|0)==(b|0))break;b=Hf(a,d,0)|0;if(!b){b=0;break}else{e=d;d=b;b=e}}return b|0}function Ef(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=l;l=l+16|0;d=f;b=Ca[c[a+16>>2]&7](c[a+12>>2]|0)|0;c[d>>2]=b;do if(b){e=lf(20)|0;if(!e){wf(d);b=0;break}else{d=c[b>>2]|0;c[e>>2]=c[d>>2];g=d+16|0;c[e+4>>2]=c[g>>2];d=d+12|0;c[e+8>>2]=c[d>>2];c[e+12>>2]=a;c[g>>2]=e;c[d>>2]=8;vf(a+4|0,1)|0;vf(a+8|0,1)|0;break}}else b=0;while(0);l=f;return b|0}function Ff(a){a=a|0;var b=0,d=0,e=0;if(a|0){e=c[a+12>>2]|0;b=a+16|0;if(!(c[b>>2]|0))b=a;else{d=b;do{b=c[d>>2]|0;d=b+16|0}while((c[d>>2]|0)!=0)}if(Hf(e,0,a)|0)do{d=b+16|0;c[d>>2]=Df(e)|0;if(c[d>>2]|0)do{b=c[d>>2]|0;d=b+16|0}while((c[d>>2]|0)!=0)}while((Hf(e,0,a)|0)!=0)}return}function Gf(a,b){a=a|0;b=b|0;b=c[a+12>>2]|0;Ff(a);if(!(vf(b+4|0,-1)|0))Bf(b);return}function Hf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a>>2]|0;if((e|0)==(b|0))c[a>>2]=d;return e|0}function If(a,b,d){a=a|0;b=b|0;d=d|0;a=a+360|0;c[a>>2]=b;c[a+4>>2]=d;return}function Jf(a,b,d){a=a|0;b=b|0;d=d|0;a=a+376|0;c[a>>2]=b;c[a+4>>2]=d;return}function Kf(a,b,d){a=a|0;b=b|0;d=d|0;a=a+368|0;c[a>>2]=b;c[a+4>>2]=d;return}function Lf(a,b){a=a|0;b=b|0;c[a+392>>2]=b;return}function Mf(){var a=0;a=lf(400)|0;if(!a)a=0;else Nf(a);return a|0}function Nf(a){a=a|0;var b=0;ah(a|0,0,400)|0;b=a+136|0;c[b>>2]=0;c[b+4>>2]=-2147483648;b=a+144|0;c[b>>2]=0;c[b+4>>2]=-2147483648;b=a+128|0;c[b>>2]=0;c[b+4>>2]=-2147483648;If(a,0,-2147483648);Jf(a,0,0);Kf(a,-1,-1);Lf(a,-1);c[a+80>>2]=1;c[a+120>>2]=0;c[a+124>>2]=1;c[a+76>>2]=-1;c[a+344>>2]=2;c[a+348>>2]=2;c[a+352>>2]=2;c[a+340>>2]=0;c[a+356>>2]=0;return}function Of(a){a=a|0;var b=0;if(a|0?(b=c[a>>2]|0,b|0):0){Pf(b);hf(a)}return}function Pf(a){a=a|0;var b=0;b=0;do{wf(a+304+(b<<2)|0);b=b+1|0}while((b|0)!=8);Nf(a);return}function Qf(a,b){a=a|0;b=b|0;fh(a|0,b|0,400)|0;ah(b|0,0,400)|0;Nf(b);return}function Rf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;c[a+76>>2]=c[b+76>>2];c[a+64>>2]=c[b+64>>2];c[a+68>>2]=c[b+68>>2];c[a+388>>2]=c[b+388>>2];h=b+296|0;g=c[h+4>>2]|0;d=a+296|0;c[d>>2]=c[h>>2];c[d+4>>2]=g;c[a+72>>2]=c[b+72>>2];d=c[b+304>>2]|0;if(!d)ra();else{f=0;e=d}while(1){if(e|0?(h=uf(e)|0,c[a+304+(f<<2)>>2]=h,(h|0)==0):0){e=5;break}d=f+1|0;if(d>>>0>=8){e=8;break}f=d;e=c[b+304+(d<<2)>>2]|0}if((e|0)==5){Pf(a);d=-12}else if((e|0)==8){c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];c[a+28>>2]=c[b+28>>2];d=a+32|0;h=b+32|0;c[d>>2]=c[h>>2];c[d+4>>2]=c[h+4>>2];c[d+8>>2]=c[h+8>>2];c[d+12>>2]=c[h+12>>2];c[d+16>>2]=c[h+16>>2];c[d+20>>2]=c[h+20>>2];c[d+24>>2]=c[h+24>>2];c[d+28>>2]=c[h+28>>2];d=0}return d|0}function Sf(a){a=a|0;var b=0,d=0;b=0;while(1){if((c[268+(b*24|0)>>2]|0)==(a|0)){d=3;break}b=b+1|0;if(b>>>0>=4){b=0;break}}if((d|0)==3)b=268+(b*24|0)+4|0;return b|0}function Tf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=(c[b+24>>2]|0)==0?1:3;do if((f|0)<=(e|0))if((f|0)==(e|0)&(a[b+29>>0]|0)!=0){f=c[b+12>>2]|0;c[d>>2]=c[f+32>>2];f=c[f>>2]|0;break}else{c[d>>2]=0;f=0;break}else{f=c[b+8>>2]|0;c[d>>2]=c[f+32+(e<<2)>>2];f=c[f+(e<<2)>>2]|0}while(0);return f|0}function Uf(d,e){d=d|0;e=e|0;var f=0;if(!(c[d+8>>2]|0))d=-1;else{c[e>>2]=c[d+16>>2];c[e+4>>2]=c[d+20>>2];a[e+8>>0]=c[d+24>>2];f=a[d+31>>0]|0;a[e+9>>0]=(a[d+29>>0]|0)!=0&f<<24>>24==0&1;a[e+12>>0]=a[d+33>>0]|0;a[e+13>>0]=f;a[e+14>>0]=a[d+32>>0]|0;a[e+10>>0]=c[d+36>>2];a[e+11>>0]=a[d+30>>0]|0;a[e+15>>0]=a[d+34>>0]|0;b[e+16>>1]=b[d+48>>1]|0;d=0}return d|0}function Vf(b,d){b=b|0;d=d|0;var e=0,f=0;do if(!(c[b+8>>2]|0))e=-1;else{f=b+68|0;if(!(a[f>>0]|0)){e=Wf(b,d)|0;if(e|0)break;a[f>>0]=1;c[b+72>>2]=d}else{if(!(a[b+34>>0]|0)){e=-1;break}if(!(a[b+41>>0]|0)){e=-1;break}if((c[b+72>>2]|0)!=(d|0)){e=-1;break}f=b+60|0;e=c[f>>2]|0;d=c[b+64>>2]|0;if((d|0)<=(e|0)){e=-1;break}e=Xf(b,(c[b+56>>2]|0)+e|0,d-e|0)|0;if((e|0)<0){e=-1;break}c[f>>2]=(c[f>>2]|0)+e}c[b+92>>2]=Tf(b,b+108|0,0)|0;if(!(c[b+24>>2]|0))e=1;else{c[b+96>>2]=Tf(b,b+112|0,1)|0;c[b+100>>2]=Tf(b,b+116|0,2)|0;e=3}if(!(a[b+29>>0]|0))e=0;else e=Tf(b,b+120|0,e)|0;c[b+104>>2]=e;c[b+80>>2]=0;e=0}while(0);return e|0}function Wf(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0;if(e>>>0>1)e=-1;else{a[b+76>>0]=(e|0)==1&1;g=b+77|0;a[g>>0]=0;a[b+78>>0]=0;h=b+24|0;if(((c[h>>2]|0)+-1|0)>>>0<2?(e=b+16|0,i=c[e>>2]|0,f=b+84|0,c[f>>2]=(i+1|0)/2|0,c[b+88>>2]=((c[b+20>>2]|0)+1|0)/2|0,c[b+124>>2]=cf(i)|0,c[b+128>>2]=cf(c[e>>2]|0)|0,c[b+196>>2]=cf((c[f>>2]<<1)+14|0)|0,(c[h>>2]|0)==1):0){e=0;do{c[b+132+(e<<2)>>2]=cf(c[f>>2]|0)|0;c[b+164+(e<<2)>>2]=cf(c[f>>2]|0)|0;e=e+1|0}while((e|0)!=8)}e=b+36|0;bg(b+200|0,d[b+30>>0]|0,a[g>>0]|0?16:8,c[e>>2]|0,d[b+32>>0]|0);if(!(c[h>>2]|0))e=4;else e=c[364+(c[e>>2]<<2)>>2]|0;c[b+248>>2]=e;e=0}return e|0}function Xf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+32|0;g=e+12|0;f=e;Yf(g);Yf(f);d=Zf(a,g,f,b,d,0)|0;gf(c[g>>2]|0);gf(c[f>>2]|0);l=e;return d|0}function Yf(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return}function Zf(b,e,f,g,h,i){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=l;l=l+16|0;u=y;x=b+4|0;j=c[x>>2]|0;v=(j|0)!=0;c[u>>2]=0;c[u+4>>2]=0;a:do if((h|0)>0){s=u+((v&1)<<2)|0;m=(i|0)!=0;j=h;while(1){if((j|0)<((m?5:2)|0)){j=-1;break a}if(m)k=0;else k=(a[g+2>>0]|0)==0?4:3;if((j|0)<(k+3|0)){j=-1;break a}q=g+k|0;r=d[q>>0]|0;n=r<<5&32|(d[g+(k+1)>>0]|0)>>>3;r=r>>>1;i=r&63;if(i>>>0>40|((r&60|0)==32|(i|0)==39)){if(c[u>>2]|0?c[s>>2]|0:0)break}else if((i>>>0<10|(i+-16|0)>>>0<6?(t=k+2|0,(t|0)<(j|0)):0)?(a[g+t>>0]|0)<0:0){if(c[u>>2]|0?c[s>>2]|0:0)break;c[u+((v&(n|0)==1&1)<<2)>>2]=1}r=_f(g,j,(m^1)&1)|0;if((r|0)<0){j=-1;break a}o=r-k|0;p=o+3|0;m=v&(n|0)==1;i=m?e:f;k=i+8|0;if(($f(i,(c[k>>2]|0)+p|0)|0)<0){j=-1;break a}i=(c[i>>2]|0)+(c[k>>2]|0)|0;a[i>>0]=0;a[i+1>>0]=0;a[i+2>>0]=1;fh(i+3|0,q|0,o|0)|0;if(m){q=i+4|0;a[q>>0]=a[q>>0]&7}c[k>>2]=(c[k>>2]|0)+p;j=j-r|0;if((j|0)>0){m=0;g=g+r|0}else break}i=j;j=c[x>>2]|0;w=22}else{i=h;w=22}while(0);do if((w|0)==22){if(j|0){j=e+8|0;if(($f(e,(c[j>>2]|0)+32|0)|0)<0){j=-1;break}if((ag(c[x>>2]|0,c[b+12>>2]|0,c[e>>2]|0,c[j>>2]|0)|0)<0){j=-1;break}}j=f+8|0;if(($f(f,(c[j>>2]|0)+32|0)|0)<0)j=-1;else{j=(ag(c[b>>2]|0,c[b+8>>2]|0,c[f>>2]|0,c[j>>2]|0)|0)<0;j=j?-1:h-i|0}}while(0);l=y;return j|0}function _f(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;do if(d){if((c|0)>3){if(a[b>>0]|0){d=-1;break}if(((a[b+1>>0]|0)==0?(a[b+2>>0]|0)==0:0)?(a[b+3>>0]|0)==1:0){d=4;e=11;break}}else{if((c|0)!=3){d=-1;break}if(a[b>>0]|0){d=-1;break}}if((a[b+1>>0]|0)==0?(a[b+2>>0]|0)==1:0){d=3;e=11}else d=-1}else{d=0;e=11}while(0);a:do if((e|0)==11){e=d+2|0;if((e|0)<=(c|0))if((e|0)<(c|0)){h=d;while(1){d=h;h=h+1|0;if(!(a[b+d>>0]|0)){f=(a[b+h>>0]|0)==0;if(f?(a[b+e>>0]|0)==1:0)break a;g=d+3|0;if((!((g|0)>=(c|0)|f^1)?(a[b+e>>0]|0)==0:0)?(a[b+g>>0]|0)==1:0)break a;else d=g}else d=d+3|0;if((d|0)>=(c|0)){d=c;break}else e=d}}else d=c;else d=-1}while(0);return d|0}function $f(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+4|0;d=c[e>>2]|0;if((d|0)<(b|0)){d=(d*3|0)/2|0;b=(d|0)<(b|0)?b:d;d=df(c[a>>2]|0,b)|0;if(!d)b=-1;else{c[a>>2]=d;c[e>>2]=b;b=0}}else b=0;return b|0}function ag(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;i=l;l=l+96|0;g=i;h=i+80|0;Pe(g);c[g+24>>2]=e;c[g+28>>2]=f;e=e+f|0;f=e+32|0;do{a[e>>0]=0;e=e+1|0}while((e|0)<(f|0));g=Fe(b,d,h,g)|0;l=i;return ((g|0)<0|(c[h>>2]|0)==0)<<31>>31|0}function bg(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0;n=30-d|0;g=+((1<>2]=Vg(i*(q*2.0))|0;o=1.0-g;p=o-h;c[a+24>>2]=Vg(i*(g*2.0*o/p))|0;c[a+28>>2]=Vg(i*(h*2.0*q/p))|0;c[a+32>>2]=Vg(i*(o*2.0))|0}d=Vg(j)|0;c[a+8>>2]=d;c[a>>2]=n;e=1<>2]=e;c[a+36>>2]=1<>2]=d;c[a+16>>2]=e;c[a+40>>2]=b;c[a+44>>2]=f;return}function cg(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0;if((c[b+40>>2]|0)==8?(c[b+44>>2]|0)==0:0){if((i|0)>0){g=0;h=e;while(1){o=a[f+g>>0]|0;a[h>>0]=o;a[h+1>>0]=o;a[h+2>>0]=o;g=g+1|0;if((g|0)==(i|0))break;else h=h+j|0}}}else k=5;if((k|0)==5?(l=c[b+12>>2]|0,m=c[b+16>>2]|0,n=c[b>>2]|0,(i|0)>0):0){g=0;while(1){o=(dg((R(d[f+g>>0]|0,l)|0)+m>>n)|0)&255;a[e>>0]=o;a[e+1>>0]=o;a[e+2>>0]=o;g=g+1|0;if((g|0)==(i|0))break;else e=e+j|0}}return}function dg(a){a=a|0;return ((a|0)<0?0:(a|0)<255?a:255)|0}function eg(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;s=c[b+20>>2]|0;m=c[b+24>>2]|0;n=c[b+28>>2]|0;o=c[b+32>>2]|0;p=c[b+12>>2]|0;q=c[b+16>>2]|0;r=c[b>>2]|0;l=c[b+36>>2]|0;if((i|0)>0){k=0;b=e;while(1){t=R(d[f+k>>0]|0,p)|0;e=(d[g+k>>0]|0)-l|0;u=(d[h+k>>0]|0)-l|0;t=t+q|0;a[b>>0]=dg(t+(R(u,s)|0)>>r)|0;a[b+1>>0]=dg(t-((R(u,n)|0)+(R(e,m)|0))>>r)|0;a[b+2>>0]=dg(t+(R(e,o)|0)>>r)|0;k=k+1|0;if((k|0)==(i|0))break;else b=b+j|0}}return}function fg(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0;if((c[b+40>>2]|0)==8?(c[b+44>>2]|0)==0:0){if((i|0)>0){k=0;l=e;while(1){a[l>>0]=a[h+k>>0]|0;a[l+1>>0]=a[f+k>>0]|0;a[l+2>>0]=a[g+k>>0]|0;k=k+1|0;if((k|0)==(i|0))break;else l=l+j|0}}}else m=5;if((m|0)==5?(n=c[b+12>>2]|0,o=c[b+16>>2]|0,p=c[b>>2]|0,(i|0)>0):0){k=0;while(1){a[e>>0]=dg((R(d[h+k>>0]|0,n)|0)+o>>p)|0;a[e+1>>0]=dg((R(d[f+k>>0]|0,n)|0)+o>>p)|0;a[e+2>>0]=dg((R(d[g+k>>0]|0,n)|0)+o>>p)|0;k=k+1|0;if((k|0)==(i|0))break;else e=e+j|0}}return}function gg(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;o=c[b+12>>2]|0;m=c[b+16>>2]|0;n=c[b>>2]|0;l=c[b+36>>2]|0;if((i|0)>0){k=0;b=e;while(1){q=d[f+k>>0]|0;r=(d[g+k>>0]|0)-l|0;e=(d[h+k>>0]|0)-l|0;p=q-r|0;a[b>>0]=dg((R(p+e|0,o)|0)+m>>n)|0;a[b+1>>0]=dg((R(r+q|0,o)|0)+m>>n)|0;a[b+2>>0]=dg((R(p-e|0,o)|0)+m>>n)|0;k=k+1|0;if((k|0)==(i|0))break;else b=b+j|0}}return}function hg(b,d,f){b=b|0;d=d|0;f=f|0;var g=0;g=c[b+8>>2]|0;if((g|0)!=0?(a[b+34>>0]|0)!=0:0){g=g+128|0;g=eh(e[b+50>>1]|0,0,c[g>>2]|0,c[g+4>>2]|0)|0;c[d>>2]=g;b=e[b+52>>1]|0}else{c[d>>2]=0;b=1}c[f>>2]=b;return}function ig(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;p=b+80|0;r=c[p>>2]|0;a:do if(r>>>0<(c[b+20>>2]|0)>>>0){s=c[b+16>>2]|0;n=(c[b+92>>2]|0)+(R(c[b+108>>2]|0,r)|0)|0;o=b+76|0;if(!(a[o>>0]|0))q=a[b+78>>0]|0?4:3;else q=4;switch(c[b+24>>2]|0){case 0:{Ja[c[b+248>>2]&7](b+200|0,e,n,0,0,s,q);break}case 1:{if(!r){h=b+96|0;i=b+112|0;j=b+100|0;k=b+116|0;l=b+84|0;m=b+88|0;g=0;do{f=(g|0)>4?g+-8|0:g;if((f|0)<0)f=0;else{t=c[m>>2]|0;f=(f|0)<(t|0)?f:t+-1|0}u=(c[h>>2]|0)+(R(c[i>>2]|0,f)|0)|0;t=(c[j>>2]|0)+(R(c[k>>2]|0,f)|0)|0;fh(c[b+132+(g<<2)>>2]|0,u|0,c[l>>2]|0)|0;fh(c[b+164+(g<<2)>>2]|0,t|0,c[l>>2]|0)|0;g=g+1|0}while((g|0)!=8)}f=r>>1;g=(f|0)%8|0;u=r&1;h=b+124|0;l=b+196|0;m=b+30|0;t=b+28|0;jg(c[h>>2]|0,b+132|0,s,g,c[l>>2]|0,d[m>>0]|0,u,d[t>>0]|0);i=b+128|0;jg(c[i>>2]|0,b+164|0,s,g,c[l>>2]|0,d[m>>0]|0,u,d[t>>0]|0);if(u|0){m=(g+5|0)%8|0;l=f+5|0;t=c[b+88>>2]|0;t=(l|0)<(t|0)?l:t+-1|0;l=(c[b+96>>2]|0)+(R(t,c[b+112>>2]|0)|0)|0;t=(c[b+100>>2]|0)+(R(c[b+116>>2]|0,t)|0)|0;u=b+84|0;fh(c[b+132+(m<<2)>>2]|0,l|0,c[u>>2]|0)|0;fh(c[b+164+(m<<2)>>2]|0,t|0,c[u>>2]|0)|0}Ja[c[b+248>>2]&7](b+200|0,e,n,c[h>>2]|0,c[i>>2]|0,s,q);break}case 2:{u=(c[b+96>>2]|0)+(R(c[b+112>>2]|0,r)|0)|0;j=(c[b+100>>2]|0)+(R(c[b+116>>2]|0,r)|0)|0;t=b+124|0;k=b+30|0;l=b+28|0;m=b+196|0;kg(c[t>>2]|0,u,s,d[k>>0]|0,d[l>>0]|0,c[m>>2]|0);u=b+128|0;kg(c[u>>2]|0,j,s,d[k>>0]|0,d[l>>0]|0,c[m>>2]|0);Ja[c[b+248>>2]&7](b+200|0,e,n,c[t>>2]|0,c[u>>2]|0,s,q);break}case 3:{t=(c[b+96>>2]|0)+(R(c[b+112>>2]|0,r)|0)|0;u=(c[b+100>>2]|0)+(R(c[b+116>>2]|0,r)|0)|0;Ja[c[b+248>>2]&7](b+200|0,e,n,t,u,s,q);break}default:{f=-1;break a}}do if(!(a[b+31>>0]|0)){if(a[o>>0]|0){if(!(a[b+29>>0]|0)){mg(e+3|0,s);break}ng(b+200|0,e+3|0,(c[b+104>>2]|0)+(R(c[b+120>>2]|0,r)|0)|0,s);if(a[b+33>>0]|0)og(e,s)}}else{lg(b+200|0,e,(c[b+104>>2]|0)+(R(c[b+120>>2]|0,r)|0)|0,s,q);if(a[o>>0]|0)mg(e+3|0,s)}while(0);c[p>>2]=(c[p>>2]|0)+1;f=0}else f=-1;while(0);return f|0}function jg(a,e,f,g,h,i,j,k){a=a|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;n=c[e+((g+5&7)<<2)>>2]|0;o=c[e+((g+6&7)<<2)>>2]|0;p=c[e+((g+7&7)<<2)>>2]|0;q=c[e+((g&7)<<2)>>2]|0;r=c[e+((g+1&7)<<2)>>2]|0;s=c[e+((g+2&7)<<2)>>2]|0;g=c[e+((g+3&7)<<2)>>2]|0;l=i+-8|0;m=1<>1;t=(f+1|0)/2|0;e=(f|0)>0;if(!j){if(e){e=0;do{u=R(d[o+e>>0]|0,-6)|0;j=R(d[r+e>>0]|0,-10)|0;b[h+(e+3<<1)>>1]=((d[n+e>>0]|0)<<1)+m+u+((d[p+e>>0]|0)*18|0)+((d[q+e>>0]|0)*57|0)+j+((d[s+e>>0]|0)<<2)-(d[g+e>>0]|0)>>l;e=e+1|0}while((e|0)<(t|0))}}else if(e){e=0;do{j=R(d[p+e>>0]|0,-10)|0;u=R(d[s+e>>0]|0,-6)|0;b[h+(e+3<<1)>>1]=m-(d[n+e>>0]|0)+((d[o+e>>0]|0)<<2)+j+((d[q+e>>0]|0)*57|0)+((d[r+e>>0]|0)*18|0)+u+((d[g+e>>0]|0)<<1)>>l;e=e+1|0}while((e|0)<(t|0))}m=h+6|0;g=b[m>>1]|0;e=0;do{b[h+(e<<1)>>1]=g;e=e+1|0}while((e|0)!=3);l=t+3|0;g=b[h+(t+2<<1)>>1]|0;e=0;do{b[h+(l+e<<1)>>1]=g;e=e+1|0}while((e|0)!=4);if(!k)ug(a,m,f,i);else vg(a,m,f,i);return}function kg(b,c,d,e,f,g){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;i=(d+1|0)/2|0;h=g+3|0;fh(h|0,c|0,i|0)|0;ah(g|0,a[c>>0]|0,3)|0;ah(g+(i+3)|0,a[c+(i+-1)>>0]|0,4)|0;if(!f)rg(b,h,d,e);else sg(b,h,d,e);return}function lg(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0;j=c[b+40>>2]|0;k=1<0){i=0;b=e;while(1){l=d[f+i>>0]|0;a[b>>0]=(R(d[b>>0]|0,l)|0)+k>>j;e=b+1|0;a[e>>0]=(R(d[e>>0]|0,l)|0)+k>>j;e=b+2|0;a[e>>0]=(R(d[e>>0]|0,l)|0)+k>>j;i=i+1|0;if((i|0)==(g|0))break;else b=b+h|0}}return}function mg(b,c){b=b|0;c=c|0;var d=0;if((c|0)>0){d=0;while(1){a[b>>0]=-1;d=d+1|0;if((d|0)==(c|0))break;else b=b+4|0}}return}function ng(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;if((c[b+40>>2]|0)==8){if((g|0)>0){b=0;while(1){a[e>>0]=a[f+b>>0]|0;b=b+1|0;if((b|0)==(g|0))break;else e=e+4|0}}}else{i=c[b+8>>2]|0;j=c[b+4>>2]|0;h=c[b>>2]|0;if((g|0)>0){b=0;while(1){a[e>>0]=(R(d[f+b>>0]|0,i)|0)+j>>h;b=b+1|0;if((b|0)==(g|0))break;else e=e+4|0}}}return}function og(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;if(!(c[695]|0)){c[695]=1;pg()}if((e|0)>0){h=0;while(1){g=a[b+3>>0]|0;f=g&255;if(!(g<<24>>24)){a[b>>0]=-1;a[b+1>>0]=-1;g=b+2|0;f=-1}else{i=c[2784+(f<<2)>>2]|0;a[b>>0]=qg(d[b>>0]|0,f,i)|0;j=b+1|0;a[j>>0]=qg(d[j>>0]|0,f,i)|0;j=b+2|0;g=j;f=(qg(d[j>>0]|0,f,i)|0)&255}a[g>>0]=f;h=h+1|0;if((h|0)==(e|0))break;else b=b+4|0}}return}function pg(){var a=0;a=1;do{c[2784+(a<<2)>>2]=(((a|0)/2|0)+16711808|0)/(a|0)|0;a=a+1|0}while((a|0)!=256);return}function qg(a,b,c){a=a|0;b=b|0;c=c|0;c=((R(c,a)|0)+32768|0)>>>16;return (a>>>0>>0?c:255)|0}function rg(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;i=(1<1){l=e+-2|0;k=l>>>1;j=k+1|0;k=k<<1;h=k+2|0;g=c;f=b;while(1){a[f>>0]=a[g>>0]|0;n=R((d[g+2>>0]|0)+(d[g+-1>>0]|0)|0,-11)|0;m=g;g=g+1|0;a[f+1>>0]=tg(32-(d[m+-3>>0]|0)-(d[m+4>>0]|0)+((d[m+3>>0]|0)+(d[m+-2>>0]|0)<<2)+n+(((d[g>>0]|0)+(d[m>>0]|0)|0)*40|0)>>6,i)|0;e=e+-2|0;if((e|0)<=1)break;else f=f+2|0}b=b+h|0;f=c+j|0;e=l-k|0}else f=c;if(e|0)a[b>>0]=a[f>>0]|0;return}function sg(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=(1<>0]|0;g=d[c+-2>>0]|0;j=d[c+-1>>0]|0;h=d[c>>0]|0;f=d[c+1>>0]|0;i=d[c+2>>0]|0;if((e|0)>1){q=e+-2|0;p=q>>>1;r=p<<1;o=r+2|0;p=p+1|0;n=h;l=b;m=c;while(1){h=d[m+3>>0]|0;t=n*57|0;a[l>>0]=tg((k<<1)+32+(R(g,-6)|0)+(j*18|0)+t+(R(f,-10)|0)+(i<<2)-h>>6,s)|0;a[l+1>>0]=tg(32-k+(g<<2)+(R(j,-10)|0)+t+(f*18|0)+(R(i,-6)|0)+(h<<1)>>6,s)|0;e=e+-2|0;if((e|0)<=1)break;else{t=i;l=l+2|0;m=m+1|0;i=h;k=g;g=j;j=n;n=f;f=t}}m=h;h=f;l=n;b=b+o|0;c=c+p|0;f=q-r|0}else{m=i;i=f;l=j;j=g;g=k;f=e}if(f|0)a[b>>0]=tg((g<<1)+32+(R(j,-6)|0)+(l*18|0)+(h*57|0)+(R(i,-10)|0)+(m<<2)-(d[c+3>>0]|0)>>6,s)|0;return}function tg(a,b){a=a|0;b=b|0;return ((a|0)<0?0:(a|0)>(b|0)?b:a)|0}function ug(c,d,e,f){c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;n=(1<>1;j=20-f|0;h=1<1){l=e+-2|0;m=l>>>1;k=m+1|0;m=m<<1;i=m+2|0;g=d;f=c;while(1){a[f>>0]=tg((b[g>>1]|0)+p>>o,n)|0;r=R((b[g+4>>1]|0)+(b[g+-2>>1]|0)|0,-11)|0;q=g;g=g+2|0;a[f+1>>0]=tg(h-(b[q+-6>>1]|0)-(b[q+8>>1]|0)+((b[q+6>>1]|0)+(b[q+-4>>1]|0)<<2)+r+(((b[g>>1]|0)+(b[q>>1]|0)|0)*40|0)>>j,n)|0;e=e+-2|0;if((e|0)<=1)break;else f=f+2|0}c=c+i|0;f=d+(k<<1)|0;e=l-m|0}else f=d;if(e|0)a[c>>0]=tg((b[f>>1]|0)+p>>o,n)|0;return}function vg(c,d,e,f){c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=(1<>1]|0;g=b[d+-4>>1]|0;j=b[d+-2>>1]|0;h=b[d>>1]|0;f=b[d+2>>1]|0;i=b[d+4>>1]|0;if((e|0)>1){q=e+-2|0;p=q>>>1;r=p<<1;o=r+2|0;p=p+1|0;n=h;l=c;m=d;while(1){h=b[m+6>>1]|0;v=n*57|0;a[l>>0]=tg((k<<1)+t+(R(g,-6)|0)+(j*18|0)+v+(R(f,-10)|0)+(i<<2)-h>>s,u)|0;a[l+1>>0]=tg(t-k+(g<<2)+(R(j,-10)|0)+v+(f*18|0)+(R(i,-6)|0)+(h<<1)>>s,u)|0;e=e+-2|0;if((e|0)<=1)break;else{v=i;l=l+2|0;m=m+2|0;i=h;k=g;g=j;j=n;n=f;f=v}}m=h;h=f;l=n;c=c+o|0;d=d+(p<<1)|0;f=q-r|0}else{m=i;i=f;l=j;j=g;g=k;f=e}if(f|0)a[c>>0]=tg((g<<1)+t+(R(j,-6)|0)+(l*18|0)+(h*57|0)+(R(i,-10)|0)+(m<<2)-(b[d+6>>1]|0)>>s,u)|0;return}function wg(){return lf(252)|0}function xg(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=l;l=l+48|0;t=y;h=yg(t,f,g,d[e+40>>0]|0)|0;a:do if((h|0)>=0){v=c[t>>2]|0;q=c[t+4>>2]|0;k=a[t+12>>0]|0;r=k&255;n=c[t+24>>2]|0;o=a[t+13>>0]|0;s=o&255;w=e+16|0;c[w>>2]=v;x=e+20|0;c[x>>2]=q;i=c[t+8>>2]|0;j=e+24|0;c[j>>2]=i;switch(i|0){case 5:{i=2;p=4;break}case 4:{i=1;p=4;break}default:{j=1;m=i}}if((p|0)==4){c[j>>2]=i;j=0;m=i}a[e+28>>0]=j;a[e+29>>0]=k;a[e+33>>0]=a[t+15>>0]|0;a[e+31>>0]=a[t+14>>0]|0;a[e+32>>0]=a[t+16>>0]|0;c[e+36>>2]=n;a[e+30>>0]=o;i=e+34|0;a[i>>0]=a[t+17>>0]|0;b[e+48>>1]=b[t+18>>1]|0;b[e+50>>1]=b[t+20>>1]|0;b[e+52>>1]=b[t+22>>1]|0;k=e+44|0;c[k>>2]=c[t+32>>2];do if(((c[t+28>>2]|0)+h|0)>>>0<=g>>>0?(u=zg(e,f+h|0,g-h|0,v,q,m,s,r)|0,(u|0)>=0):0){j=u+h|0;a[e+41>>0]=1;if(!(a[i>>0]|0))Ag(e);else{h=g-j|0;i=cf(h)|0;c[e+56>>2]=i;if(!i)break;fh(i|0,f+j|0,h|0)|0;c[e+64>>2]=h;c[e+60>>2]=0}f=c[e+8>>2]|0;if((c[f+64>>2]|0)>=(c[w>>2]|0)?(c[f+68>>2]|0)>=(c[x>>2]|0):0){c[e+80>>2]=-1;h=0;break a}}while(0);Of(e+8|0);Of(e+12|0);c[k>>2]=0;h=-1}while(0);l=y;return h|0}function yg(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;J=l;l=l+32|0;x=J+20|0;A=J+16|0;C=J+8|0;D=J+12|0;E=J+4|0;F=J;a:do if(((((((f|0)>=6?(a[e>>0]|0)==66:0)?(a[e+1>>0]|0)==80:0)?(a[e+2>>0]|0)==71:0)?(a[e+3>>0]|0)==-5:0)?(H=a[e+4>>0]|0,h=H&255,n=h>>>5,c[d+8>>2]=n,(H&255)<=191):0)?(H=(h&15)+8|0,a[d+13>>0]=H,H>>>0<=14):0){o=a[e+5>>0]|0;z=o&255;p=z>>>4;c[d+24>>2]=p;w=z&8;i=z>>>2&1;a[d+16>>0]=z>>>1&1;G=d+17|0;a[G>>0]=z&1;z=d+18|0;b[z>>1]=0;H=d+20|0;b[H>>1]=0;B=d+22|0;b[B>>1]=0;j=d+12|0;a[j>>0]=0;k=d+14|0;a[k>>0]=0;m=d+15|0;a[m>>0]=0;if(!(h&16))if(!i)h=0;else{a[j>>0]=1;a[k>>0]=1;h=1}else{a[j>>0]=1;a[m>>0]=i;h=0}if(((((((o&255)<=79?(p|0)==0&h<<24>>24==0|(n|0)!=0:0)?(q=Eg(d,e+6|0,f+-6|0)|0,(q|0)>=0):0)?(r=q+6|0,s=d+4|0,t=Eg(s,e+r|0,f-r|0)|0,(t|0)>=0):0)?(u=t+r|0,(c[d>>2]|0)!=0):0)?(c[s>>2]|0)!=0:0)?(I=d+28|0,v=Eg(I,e+u|0,f-u|0)|0,(v|0)>=0):0){h=v+u|0;c[x>>2]=0;b:do if(!w){c[d+32>>2]=0;y=43}else{i=Eg(x,e+h|0,f-h|0)|0;if((i|0)<0){h=-1;break a}h=i+h|0;i=d+32|0;c[i>>2]=0;r=(c[x>>2]|0)+h|0;if((r|0)>(f|0)){h=-1;break a}q=(g|0)!=0;if(!q?(a[G>>0]|0)==0:0){h=r;break}if((r|0)<=(h|0)){y=43;break}while(1){j=Fg(A,e+h|0,r-h|0)|0;if((j|0)<0){h=-1;break a}h=j+h|0;j=Eg(C,e+h|0,r-h|0)|0;if((j|0)<0){h=-1;break a}n=j+h|0;o=c[C>>2]|0;h=o+n|0;if(h>>>0>r>>>0){h=-1;break a}p=c[A>>2]|0;if((a[G>>0]|0)!=0&(p|0)==5){j=Eg(D,e+n|0,r-n|0)|0;if((j|0)<0)break;j=j+n|0;k=Eg(E,e+j|0,r-j|0)|0;if((k|0)<0)break;y=k+j|0;if((Eg(F,e+y|0,r-y|0)|0)<0)break;j=c[E>>2]|0;k=c[F>>2]|0;if((j|0)==0|(k|0)==0)break;if((j&65535|0)!=(j|0))break;if((k&65535|0)!=(k|0))break;m=c[D>>2]|0;if((m&65535|0)!=(m|0))break;b[z>>1]=m;b[H>>1]=j;b[B>>1]=k}if(q){x=cf(16)|0;c[x>>2]=p;g=x+4|0;c[g>>2]=o;y=x+12|0;c[y>>2]=0;c[i>>2]=x;i=cf(o)|0;c[x+8>>2]=i;fh(i|0,e+n|0,c[g>>2]|0)|0;i=y}if((r|0)<=(h|0)){y=43;break b}}h=-1;break a}while(0);if((y|0)==43)if((a[G>>0]|0)!=0?(b[H>>1]|0)==0:0){h=-1;break}if(!(c[I>>2]|0))c[I>>2]=f-h}else h=-1}else h=-1;while(0);l=J;return h|0}function zg(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0;o=l;l=l+32|0;k=o+12|0;m=o;Yf(k);Yf(m);if(i){i=Bg(k,a+12|0,a+4|0,b,d,e,f,0,h)|0;if((i|0)<0)i=-1;else{j=b+i|0;b=d-i|0;n=4}}else{j=b;b=d;n=4}if((n|0)==4){i=Bg(m,a+8|0,a,j,b,e,f,g,h)|0;if((i|0)<0)i=-1;else{n=b-i|0;i=Zf(a,k,m,j+i|0,n,1)|0;gf(c[k>>2]|0);gf(c[m>>2]|0);i=(i|0)<0?-1:d-n+i|0}}l=o;return i|0}function Ag(a){a=a|0;var b=0,d=0;b=a+4|0;d=c[b>>2]|0;if(d|0){ze(d)|0;gf(c[b>>2]|0);c[b>>2]=0}b=c[a>>2]|0;if(b|0){ze(b)|0;gf(c[a>>2]|0);c[a>>2]=0}return}function Bg(a,b,d,e,f,g,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+16|0;p=q+8|0;k=q+4|0;m=q;e=Cg(k,m,e,f,g,h,i,j)|0;do if((((e|0)>=0?(k=c[k>>2]|0,m=Dg(a,k,c[m>>2]|0)|0,gf(k),(m|0)>=0):0)?(n=Ee(152)|0,(n|0)!=0):0)?(m=Mf()|0,c[p>>2]=m,o=m,(m|0)!=0):0){m=n+688|0;c[m>>2]=c[m>>2]|1;if((ye(n,152,0)|0)<0){Of(p);e=-1;break}else{c[d>>2]=n;c[b>>2]=o;break}}else e=-1;while(0);l=q;return e|0}function Cg(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+16|0;k=q;c[b>>2]=0;p=Eg(k,e,f)|0;if((p|0)>=0?(o=c[k>>2]|0,o>>>0<=(f-p|0)>>>0):0){m=o+10|0;n=cf(m)|0;i=i&255;a[n>>0]=i;a[n+1>>0]=g>>>24;a[n+2>>0]=g>>>16;a[n+3>>0]=g>>>8;a[n+4>>0]=g;a[n+5>>0]=h>>>24;a[n+6>>0]=h>>>16;a[n+7>>0]=h>>>8;a[n+8>>0]=h;a[n+9>>0]=j+248;fh(n+10|0,e+p|0,o|0)|0;g=cf((m<<1)+6|0)|0;a[g>>0]=0;a[g+1>>0]=0;a[g+2>>0]=0;a[g+3>>0]=1;a[g+4>>0]=96;a[g+5>>0]=1;if((m|0)>0){e=0;f=6;while(1){k=e+1|0;if((k|0)<(m|0)&i<<24>>24==0?(a[n+k>>0]|0)==0:0){a[g+f>>0]=0;a[g+(f+1)>>0]=0;a[g+(f+2)>>0]=3;k=e+2|0;f=f+3|0}else{a[g+f>>0]=i;f=f+1|0}if((k|0)>=(m|0))break;e=k;i=a[n+k>>0]|0}if(!f){f=0;k=12}else k=11}else{f=6;k=11}if((k|0)==11)if(!(a[g+(f+-1)>>0]|0))k=12;if((k|0)==12){a[g+f>>0]=-128;f=f+1|0}gf(n);c[d>>2]=f;c[b>>2]=g;f=p+o|0}else f=-1;l=q;return f|0}function Dg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=a+8|0;if(($f(a,(c[e>>2]|0)+d|0)|0)<0)a=-1;else{fh((c[a>>2]|0)+(c[e>>2]|0)|0,b|0,d|0)|0;c[e>>2]=(c[e>>2]|0)+d;a=0}return a|0}function Eg(a,b,d){a=a|0;b=b|0;d=d|0;b=Fg(a,b,d)|0;if((b|0)>=0)b=(c[a>>2]|0)>>>0>1073741823?-1:b;return b|0}function Fg(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0;a:do if((f|0)>=1){g=a[e>>0]|0;h=g&255;if(g<<24>>24>-1){c[b>>2]=h;f=1;break}if(g<<24>>24!=-128){g=h&127;h=e+1|0;while(1){if((f|0)<2){f=-1;break a}i=h;h=h+1|0;i=d[i>>0]|0;g=i&127|g<<7;if(!(i&128))break;else f=f+-1|0}c[b>>2]=g;f=h-e|0}else f=-1}else f=-1;while(0);return f|0}function Gg(a){a=a|0;Hg(a);gf(c[a+56>>2]|0);Ag(a);Of(a+8|0);Of(a+12|0);gf(a);return}function Hg(a){a=a|0;var b=0;gf(c[a+124>>2]|0);gf(c[a+128>>2]|0);b=0;do{gf(c[a+132+(b<<2)>>2]|0);gf(c[a+164+(b<<2)>>2]|0);b=b+1|0}while((b|0)!=8);gf(c[a+196>>2]|0);return}function Ig(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:do if((a+-1|0)>>>0>2147483582)b=0;else{b=c[953]|0;if(!b){b=_g(64)|0;if((b|0)==(-1|0)){b=0;break}c[954]=_g(0)|0;c[953]=3808;c[952]=3808;c[956]=3820;c[955]=3820;i=b+16|0;Jg(i,170);Kg(i,3820);Kg(b+24|0,3808);b=c[953]|0}i=Lg(a)|0;g=b+-8|0;a=Mg(g)|0;b:do if(i>>>0>>0){e=g;d=g;a=g;j=10}else{h=c[952]|0;e=a;a=g;f=g;d=g;while(1){if((b|0)==(h|0))break;if((i|0)==(e|0)){j=13;break}b=c[b+4>>2]|0;g=b+-8|0;a=Mg(g)|0;if(i>>>0>>0){e=g;d=g;a=g;j=10;break b}else{e=a;a=g;f=g;d=g}}if((j|0)==13){Ng(b);break}if((_g(i+32-e|0)|0)==(-1|0)){b=0;break a}c[954]=_g(0)|0;b=h;e=f;j=10}while(0);if((j|0)==10){j=e+i|0;Kg(j,d);Kg(j+8|0,b);Jg(j,170);Ng(b)}Jg(a,85)}while(0);return b|0}function Jg(b,c){b=b|0;c=c|0;a[b+-1>>0]=c;return}function Kg(a,b){a=a|0;b=b|0;var d=0,e=0;e=b+4|0;d=c[e>>2]|0;c[e>>2]=a;c[a>>2]=b;c[a+4>>2]=d;c[d>>2]=a;return}function Lg(a){a=a|0;return a+40&-32|0}function Mg(a){a=a|0;var b=0;b=c[a+4>>2]|0;return ((b|0)==3820?c[954]|0:b)-a|0}function Ng(a){a=a|0;var b=0;b=c[a>>2]|0;a=c[a+4>>2]|0;c[b+4>>2]=a;c[a>>2]=b;return}function Og(a){a=a|0;var b=0,d=0;if(a|0){b=a+-8|0;Kg(a,3808);Jg(b,170);d=c[b>>2]|0;if((d|0)!=3820?(Pg(d)|0)==170:0){Ng(b);Ng(a);b=d}a=c[b+4>>2]|0;if((a|0)!=3820?(Pg(a)|0)==170:0){Ng(a);b=b+8|0;Ng(b);d=a+8|0;Kg(b,d);Ng(d)}}return}function Pg(a){a=a|0;return d[a+-1>>0]|0|0}function Qg(a,b){a=a|0;b=b|0;var d=0,e=0;do if(a){if(!b){Og(a);d=0;break}d=Ig(b)|0;if(!d)d=0;else{e=(c[a+-4>>2]|0)-a+-1|0;fh(d|0,a|0,(e>>>0>b>>>0?b:e)|0)|0;Og(a)}}else d=Ig(b)|0;while(0);return d|0}function Rg(){return 3828}function Sg(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do if(!d)b=0;else{while(1){e=a[b>>0]|0;f=a[c>>0]|0;if(e<<24>>24!=f<<24>>24)break;d=d+-1|0;if(!d){b=0;break a}else{b=b+1|0;c=c+1|0}}b=(e&255)-(f&255)|0}while(0);return b|0}function Tg(a){a=a|0;return 0}function Ug(a){a=a|0;return 0}function Vg(a){a=+a;var b=0;b=Ug(32)|0;a=+Wg(a);return ~~a|0}function Wg(a){a=+a;var b=0,d=0;h[j>>3]=a;b=c[j+4>>2]|0;d=b&2146435072;if(!(d>>>0>1126170624|(d|0)==1126170624&0>0)){b=(b|0)<0;a=(b?4503599627370496.0:-4503599627370496.0)+((b?-4503599627370496.0:4503599627370496.0)+a);if(a==0.0)a=b?-0.0:0.0}return +a}function Xg(){}function Yg(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>c;return a>>>c|(b&(1<>c-32|0}function Zg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (C=d,a-c>>>0|0)|0}function _g(a){a=a|0;var b=0,d=0;d=a+15&-16|0;b=c[i>>2]|0;a=b+d|0;if((d|0)>0&(a|0)<(b|0)|(a|0)<0){Z()|0;pa(12);return -1}c[i>>2]=a;if((a|0)>(Y()|0)?(X()|0)==0:0){pa(12);c[i>>2]=b;return -1}return b|0}function $g(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (C=b+d+(c>>>0>>0|0)>>>0,c|0)|0}function ah(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=b+e|0;d=d&255;if((e|0)>=67){while(b&3){a[b>>0]=d;b=b+1|0}f=h&-4|0;g=f-64|0;i=d|d<<8|d<<16|d<<24;while((b|0)<=(g|0)){c[b>>2]=i;c[b+4>>2]=i;c[b+8>>2]=i;c[b+12>>2]=i;c[b+16>>2]=i;c[b+20>>2]=i;c[b+24>>2]=i;c[b+28>>2]=i;c[b+32>>2]=i;c[b+36>>2]=i;c[b+40>>2]=i;c[b+44>>2]=i;c[b+48>>2]=i;c[b+52>>2]=i;c[b+56>>2]=i;c[b+60>>2]=i;b=b+64|0}while((b|0)<(f|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}return h-e|0}function bh(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b<>>32-c;return a<>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function dh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=R(e,f)|0;d=a>>>16;a=(c>>>16)+(R(e,d)|0)|0;e=b>>>16;b=R(e,f)|0;return (C=(a>>>16)+(R(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function eh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=dh(e,f)|0;a=C;return (C=(R(b,f)|0)+(R(d,e)|0)+a|a&0,c|0|0)|0}function fh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192)return qa(b|0,d|0,e|0)|0;h=b|0;g=b+e|0;if((b&3)==(d&3)){while(b&3){if(!e)return h|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}e=g&-4|0;f=e-64|0;while((b|0)<=(f|0)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];c[b+32>>2]=c[d+32>>2];c[b+36>>2]=c[d+36>>2];c[b+40>>2]=c[d+40>>2];c[b+44>>2]=c[d+44>>2];c[b+48>>2]=c[d+48>>2];c[b+52>>2]=c[d+52>>2];c[b+56>>2]=c[d+56>>2];c[b+60>>2]=c[d+60>>2];b=b+64|0;d=d+64|0}while((b|0)<(e|0)){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}}else{e=g-4|0;while((b|0)<(e|0)){a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;b=b+4|0;d=d+4|0}}while((b|0)<(g|0)){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}return h|0}function gh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ta[a&1](b|0,c|0,d|0)|0}function hh(a,b,c,d,e,f,g,h,i,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;ua[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0,l|0)}function ih(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;va[a&1](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0)}function jh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa[a&3](b|0,c|0,d|0,e|0,f|0)}function kh(a,b){a=a|0;b=b|0;xa[a&7](b|0)}function lh(a,b,c){a=a|0;b=b|0;c=c|0;ya[a&15](b|0,c|0)}function mh(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return za[a&1](b|0,c|0,d|0,e|0,f|0,g|0)|0}function nh(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;Aa[a&1](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0)}function oh(a,b,c,d,e,f,g,h,i,j,k,l,m){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;Ba[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0,l|0,m|0)}function ph(a,b){a=a|0;b=b|0;return Ca[a&7](b|0)|0}function qh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Da[a&7](b|0,c|0,d|0)}function rh(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;Ea[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0)}function sh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Fa[a&1](b|0,c|0,d|0,e|0)|0}function th(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Ga[a&3](b|0,c|0,d|0,e|0,f|0,g|0)}function uh(a,b,c){a=a|0;b=b|0;c=c|0;return Ha[a&1](b|0,c|0)|0}function vh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Ia[a&1](b|0,c|0,d|0,e|0,f|0)|0}function wh(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;Ja[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0)}function xh(a,b,c){a=a|0;b=b|0;c=c|0;V(0);return 0}function yh(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;V(1)}function zh(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;V(2)}function Ah(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;V(3)}function Bh(a){a=a|0;V(4)}function Ch(a,b){a=a|0;b=b|0;V(5)}function Dh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;V(6);return 0}function Eh(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;V(7)}function Fh(a,b,c,d,e,f,g,h,i,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;V(8)}function Gh(a){a=a|0;V(9);return 0}function Hh(a,b,c){a=a|0;b=b|0;c=c|0;V(10)}function Ih(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;V(11)}function Jh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;V(12);return 0}function Kh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;V(13)}function Lh(a,b){a=a|0;b=b|0;V(14);return 0}function Mh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;V(15);return 0}function Nh(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;V(16)} + +// EMSCRIPTEN_END_FUNCS +var ta=[xh,Ce];var ua=[yh,Gd,Hd,Id,Jd,Nd,Od,Pd];var va=[zh,af];var wa=[Ah,Vd,Wd,Ah];var xa=[Bh,hc,td,yd,zd,Ad,Bd,Bh];var ya=[Ch,rd,ud,vd,wd,xd,ne,rf,Gf,Ch,Ch,Ch,Ch,Ch,Ch,Ch];var za=[Dh,Ae];var Aa=[Eh,Qd];var Ba=[Fh,Rd,Sd,Fh];var Ca=[Gh,ec,gc,tf,sf,Gh,Gh,Gh];var Da=[Hh,nd,od,pd,qd,sd,Hh,Hh];var Ea=[Ih,Cd,Dd,Ed,Fd,Kd,Ld,Md];var Fa=[Jh,fc];var Ga=[Kh,md,Td,Ud];var Ha=[Lh,rc];var Ia=[Mh,Be];var Ja=[Nh,eg,fg,gg,cg,Nh,Nh,Nh];return{___muldsi3:dh,_sbrk:_g,_i64Subtract:Zg,_free:Og,_bpg_decoder_decode:xg,_bpg_decoder_start:Vf,_i64Add:$g,_bpg_decoder_open:wg,_bitshift64Ashr:Yg,_memset:ah,_bpg_decoder_get_info:Uf,_malloc:Ig,_emscripten_get_global_libc:Rg,_memcpy:fh,_bpg_decoder_get_line:ig,_bpg_decoder_close:Gg,_bpg_decoder_get_frame_duration:hg,___muldi3:eh,_llvm_bswap_i32:ch,_bitshift64Shl:bh,runPostSets:Xg,stackAlloc:Ka,stackSave:La,stackRestore:Ma,establishStackSpace:Na,setTempRet0:Pa,getTempRet0:Qa,setThrew:Oa,stackAlloc:Ka,stackSave:La,stackRestore:Ma,establishStackSpace:Na,setThrew:Oa,setTempRet0:Pa,getTempRet0:Qa,dynCall_iiii:gh,dynCall_viiiiiiiiiii:hh,dynCall_viiiiiiiiii:ih,dynCall_viiiii:jh,dynCall_vi:kh,dynCall_vii:lh,dynCall_iiiiiii:mh,dynCall_viiiiiiiii:nh,dynCall_viiiiiiiiiiii:oh,dynCall_ii:ph,dynCall_viii:qh,dynCall_viiiiiiii:rh,dynCall_iiiii:sh,dynCall_viiiiii:th,dynCall_iii:uh,dynCall_iiiiii:vh,dynCall_viiiiiii:wh}}) + + +// EMSCRIPTEN_END_ASM +(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var _bpg_decoder_decode=Module["_bpg_decoder_decode"]=asm["_bpg_decoder_decode"];var _bpg_decoder_start=Module["_bpg_decoder_start"]=asm["_bpg_decoder_start"];var stackSave=Module["stackSave"]=asm["stackSave"];var getTempRet0=Module["getTempRet0"]=asm["getTempRet0"];var setThrew=Module["setThrew"]=asm["setThrew"];var _bpg_decoder_get_line=Module["_bpg_decoder_get_line"]=asm["_bpg_decoder_get_line"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _bitshift64Ashr=Module["_bitshift64Ashr"]=asm["_bitshift64Ashr"];var _memset=Module["_memset"]=asm["_memset"];var _bpg_decoder_get_info=Module["_bpg_decoder_get_info"]=asm["_bpg_decoder_get_info"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var setTempRet0=Module["setTempRet0"]=asm["setTempRet0"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=asm["_emscripten_get_global_libc"];var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=asm["_llvm_bswap_i32"];var ___muldsi3=Module["___muldsi3"]=asm["___muldsi3"];var _free=Module["_free"]=asm["_free"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var _bpg_decoder_open=Module["_bpg_decoder_open"]=asm["_bpg_decoder_open"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var _bpg_decoder_close=Module["_bpg_decoder_close"]=asm["_bpg_decoder_close"];var _malloc=Module["_malloc"]=asm["_malloc"];var _bpg_decoder_get_frame_duration=Module["_bpg_decoder_get_frame_duration"]=asm["_bpg_decoder_get_frame_duration"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viiiiiiiiiii=Module["dynCall_viiiiiiiiiii"]=asm["dynCall_viiiiiiiiiii"];var dynCall_viiiiiiiiii=Module["dynCall_viiiiiiiiii"]=asm["dynCall_viiiiiiiiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=asm["dynCall_iiiiiii"];var dynCall_viiiiiiiii=Module["dynCall_viiiiiiiii"]=asm["dynCall_viiiiiiiii"];var dynCall_viiiiiiiiiiii=Module["dynCall_viiiiiiiiiiii"]=asm["dynCall_viiiiiiiiiiii"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=asm["dynCall_viiiiiiii"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_iiiiii=Module["dynCall_iiiiii"]=asm["dynCall_iiiiii"];var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=asm["dynCall_viiiiiii"];Runtime.stackAlloc=Module["stackAlloc"];Runtime.stackSave=Module["stackSave"];Runtime.stackRestore=Module["stackRestore"];Runtime.establishStackSpace=Module["establishStackSpace"];Runtime.setTempRet0=Module["setTempRet0"];Runtime.getTempRet0=Module["getTempRet0"];Module["asm"]=asm;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["exit"](status)}Module["quit"](status,new ExitStatus(status))}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}run();window["BPGDecoder"]=(function(ctx){this.ctx=ctx;this["imageData"]=null;this["onload"]=null;this["frames"]=null;this["loop_count"]=0});window["BPGDecoder"].prototype={malloc:Module["cwrap"]("malloc","number",["number"]),free:Module["cwrap"]("free","void",["number"]),bpg_decoder_open:Module["cwrap"]("bpg_decoder_open","number",[]),bpg_decoder_decode:Module["cwrap"]("bpg_decoder_decode","number",["number","array","number"]),bpg_decoder_get_info:Module["cwrap"]("bpg_decoder_get_info","number",["number","number"]),bpg_decoder_start:Module["cwrap"]("bpg_decoder_start","number",["number","number"]),bpg_decoder_get_frame_duration:Module["cwrap"]("bpg_decoder_get_frame_duration","void",["number","number","number"]),bpg_decoder_get_line:Module["cwrap"]("bpg_decoder_get_line","number",["number","number"]),bpg_decoder_close:Module["cwrap"]("bpg_decoder_close","void",["number"]),load:(function(url){var request=new XMLHttpRequest;var this1=this;request.open("get",url,true);request.responseType="arraybuffer";request.onload=(function(event){this1._onload(request,event)});request.send()}),_onload:(function(request,event){var data=request.response;var array=new Uint8Array(data);var img,w,h,img_info_buf,cimg,p0,rgba_line,w4,frame_count;var heap8,heap16,heap32,dst,i,y,duration,frames,loop_count;img=this.bpg_decoder_open();if(this.bpg_decoder_decode(img,array,array.length)<0){console.log("could not decode image");return}img_info_buf=this.malloc(5*4);this.bpg_decoder_get_info(img,img_info_buf);heap8=Module["HEAPU8"];heap16=Module["HEAPU16"];heap32=Module["HEAPU32"];w=heap32[img_info_buf>>2];h=heap32[img_info_buf+4>>2];loop_count=heap16[img_info_buf+16>>1];w4=w*4;rgba_line=this.malloc(w4);frame_count=0;frames=[];for(;;){if(this.bpg_decoder_start(img,1)<0)break;this.bpg_decoder_get_frame_duration(img,img_info_buf,img_info_buf+4);duration=heap32[img_info_buf>>2]*1e3/heap32[img_info_buf+4>>2];cimg=this.ctx.createImageData(w,h);dst=cimg.data;p0=0;for(y=0;y=frames.length){if(dec["loop_count"]==0||dec.loop_counter=0){dec.frame_index=frame_index;ctx.putImageData(frames[frame_index]["img"],0,0);setTimeout(next_frame,frames[frame_index]["duration"])}}canvas.width=imageData.width;canvas.height=imageData.height;ctx.putImageData(imageData,0,0);if(frames.length>1){dec.frame_index=0;dec.loop_counter=0;setTimeout(next_frame,frames[0]["duration"])}}).bind(dec,canvas,ctx);dec.load(url)}})}))() + + + + diff --git a/themes/fractal-forest/static/js/bpgdec8a.js.sha384 b/themes/fractal-forest/static/js/bpgdec8a.js.sha384 new file mode 100644 index 0000000..57ce5bf --- /dev/null +++ b/themes/fractal-forest/static/js/bpgdec8a.js.sha384 @@ -0,0 +1 @@ +8PG0go3BW8hLm63KbTxk/hNcehaoSbrAhKzsmy2Jhs/KY8QdiKKkjhdeyHY/Q/0I diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index ff2f274..0000000 --- a/yarn.lock +++ /dev/null @@ -1,7773 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/code-frame@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" - integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== - dependencies: - "@babel/highlight" "^7.0.0" - -"@babel/core@^7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.2.2.tgz#07adba6dde27bb5ad8d8672f15fde3e08184a687" - integrity sha512-59vB0RWt09cAct5EIe58+NzGP4TFSD3Bz//2/ELy3ZeTeKF6VTD1AXlH8BGGbCX0PuobZBsIzO7IAI9PH67eKw== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.2.2" - "@babel/helpers" "^7.2.0" - "@babel/parser" "^7.2.2" - "@babel/template" "^7.2.2" - "@babel/traverse" "^7.2.2" - "@babel/types" "^7.2.2" - convert-source-map "^1.1.0" - debug "^4.1.0" - json5 "^2.1.0" - lodash "^4.17.10" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/generator@^7.2.2": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.3.2.tgz#fff31a7b2f2f3dad23ef8e01be45b0d5c2fc0132" - integrity sha512-f3QCuPppXxtZOEm5GWPra/uYUjmNQlu9pbAD8D/9jze4pTY83rTtB1igTBSwvkeNlC5gR24zFFkz+2WHLFQhqQ== - dependencies: - "@babel/types" "^7.3.2" - jsesc "^2.5.1" - lodash "^4.17.10" - source-map "^0.5.0" - trim-right "^1.0.1" - -"@babel/helper-annotate-as-pure@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" - integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" - integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-call-delegate@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz#6a957f105f37755e8645343d3038a22e1449cc4a" - integrity sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ== - dependencies: - "@babel/helper-hoist-variables" "^7.0.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-create-class-features-plugin@^7.3.0": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.3.2.tgz#ba1685603eb1c9f2f51c9106d5180135c163fe73" - integrity sha512-tdW8+V8ceh2US4GsYdNVNoohq5uVwOf9k6krjwW4E1lINcHgttnWcNqgdoessn12dAy8QkbezlbQh2nXISNY+A== - dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-member-expression-to-functions" "^7.0.0" - "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.2.3" - -"@babel/helper-define-map@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz#3b74caec329b3c80c116290887c0dd9ae468c20c" - integrity sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg== - dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/types" "^7.0.0" - lodash "^4.17.10" - -"@babel/helper-explode-assignable-expression@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" - integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA== - dependencies: - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-function-name@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" - integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== - dependencies: - "@babel/helper-get-function-arity" "^7.0.0" - "@babel/template" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-get-function-arity@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" - integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-hoist-variables@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz#46adc4c5e758645ae7a45deb92bab0918c23bb88" - integrity sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-member-expression-to-functions@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz#8cd14b0a0df7ff00f009e7d7a436945f47c7a16f" - integrity sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-module-imports@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" - integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-module-transforms@^7.1.0": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.2.2.tgz#ab2f8e8d231409f8370c883d20c335190284b963" - integrity sha512-YRD7I6Wsv+IHuTPkAmAS4HhY0dkPobgLftHp0cRGZSdrRvmZY8rFvae/GVu3bD00qscuvK3WPHB3YdNpBXUqrA== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-simple-access" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.0.0" - "@babel/template" "^7.2.2" - "@babel/types" "^7.2.2" - lodash "^4.17.10" - -"@babel/helper-optimise-call-expression@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" - integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-plugin-utils@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" - integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== - -"@babel/helper-regex@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0.tgz#2c1718923b57f9bbe64705ffe5640ac64d9bdb27" - integrity sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg== - dependencies: - lodash "^4.17.10" - -"@babel/helper-remap-async-to-generator@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" - integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-wrap-function" "^7.1.0" - "@babel/template" "^7.1.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-replace-supers@^7.1.0", "@babel/helper-replace-supers@^7.2.3": - version "7.2.3" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.2.3.tgz#19970020cf22677d62b3a689561dbd9644d8c5e5" - integrity sha512-GyieIznGUfPXPWu0yLS6U55Mz67AZD9cUk0BfirOWlPrXlBcan9Gz+vHGz+cPfuoweZSnPzPIm67VtQM0OWZbA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.0.0" - "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/traverse" "^7.2.3" - "@babel/types" "^7.0.0" - -"@babel/helper-simple-access@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" - integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w== - dependencies: - "@babel/template" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-split-export-declaration@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz#3aae285c0311c2ab095d997b8c9a94cad547d813" - integrity sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-wrap-function@^7.1.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" - integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ== - dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/template" "^7.1.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.2.0" - -"@babel/helpers@^7.2.0": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.3.1.tgz#949eec9ea4b45d3210feb7dc1c22db664c9e44b9" - integrity sha512-Q82R3jKsVpUV99mgX50gOPCWwco9Ec5Iln/8Vyu4osNIOQgSrd9RFrQeUvmvddFNoLwMyOUWU+5ckioEKpDoGA== - dependencies: - "@babel/template" "^7.1.2" - "@babel/traverse" "^7.1.5" - "@babel/types" "^7.3.0" - -"@babel/highlight@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" - integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw== - dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^4.0.0" - -"@babel/parser@^7.0.0", "@babel/parser@^7.2.2", "@babel/parser@^7.2.3": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.3.2.tgz#95cdeddfc3992a6ca2a1315191c1679ca32c55cd" - integrity sha512-QzNUC2RO1gadg+fs21fi0Uu0OuGNzRKEmgCxoLNzbCdoprLwjfmZwzUrpUNfJPaVRwBpDY47A17yYEGWyRelnQ== - -"@babel/plugin-proposal-async-generator-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" - integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.1.0" - "@babel/plugin-syntax-async-generators" "^7.2.0" - -"@babel/plugin-proposal-class-properties@^7.3.0": - version "7.3.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.3.0.tgz#272636bc0fa19a0bc46e601ec78136a173ea36cd" - integrity sha512-wNHxLkEKTQ2ay0tnsam2z7fGZUi+05ziDJflEt3AZTP3oXLKHJp9HqhfroB/vdMvt3sda9fAbq7FsG8QPDrZBg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.3.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-proposal-decorators@^7.3.0": - version "7.3.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.3.0.tgz#637ba075fa780b1f75d08186e8fb4357d03a72a7" - integrity sha512-3W/oCUmsO43FmZIqermmq6TKaRSYhmh/vybPfVFwQWdSb8xwki38uAIvknCRzuyHRuYfCYmJzL9or1v0AffPjg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.3.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-decorators" "^7.2.0" - -"@babel/plugin-proposal-json-strings@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317" - integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-json-strings" "^7.2.0" - -"@babel/plugin-proposal-object-rest-spread@^7.3.1": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.3.2.tgz#6d1859882d4d778578e41f82cc5d7bf3d5daf6c1" - integrity sha512-DjeMS+J2+lpANkYLLO+m6GjoTMygYglKmRe6cDTbFv3L9i6mmiE8fe6B8MtCSLZpVXscD5kn7s6SgtHrDoBWoA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" - -"@babel/plugin-proposal-optional-catch-binding@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5" - integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" - -"@babel/plugin-proposal-unicode-property-regex@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.2.0.tgz#abe7281fe46c95ddc143a65e5358647792039520" - integrity sha512-LvRVYb7kikuOtIoUeWTkOxQEV1kYvL5B6U3iWEGCzPNRus1MzJweFqORTj+0jkxozkTSYNJozPOddxmqdqsRpw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" - regexpu-core "^4.2.0" - -"@babel/plugin-syntax-async-generators@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" - integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-decorators@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.2.0.tgz#c50b1b957dcc69e4b1127b65e1c33eef61570c1b" - integrity sha512-38QdqVoXdHUQfTpZo3rQwqQdWtCn5tMv4uV6r2RMfTqNBuv4ZBhz79SfaQWKTVmxHjeFv/DnXVC/+agHCklYWA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-dynamic-import@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612" - integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-json-strings@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" - integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-jsx@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7" - integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-object-rest-spread@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" - integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c" - integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-arrow-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" - integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-async-to-generator@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.2.0.tgz#68b8a438663e88519e65b776f8938f3445b1a2ff" - integrity sha512-CEHzg4g5UraReozI9D4fblBYABs7IM6UerAVG7EJVrTLC5keh00aEuLUT+O40+mJCEzaXkYfTCUKIyeDfMOFFQ== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.1.0" - -"@babel/plugin-transform-block-scoped-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190" - integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-block-scoping@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.2.0.tgz#f17c49d91eedbcdf5dd50597d16f5f2f770132d4" - integrity sha512-vDTgf19ZEV6mx35yiPJe4fS02mPQUUcBNwWQSZFXSzTSbsJFQvHt7DqyS3LK8oOWALFOsJ+8bbqBgkirZteD5Q== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - lodash "^4.17.10" - -"@babel/plugin-transform-classes@^7.2.0": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.2.2.tgz#6c90542f210ee975aa2aa8c8b5af7fa73a126953" - integrity sha512-gEZvgTy1VtcDOaQty1l10T3jQmJKlNVxLDCs+3rCVPr6nMkODLELxViq5X9l+rfxbie3XrfrMCYYY6eX3aOcOQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-define-map" "^7.1.0" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.0.0" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da" - integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-destructuring@^7.2.0": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.3.2.tgz#f2f5520be055ba1c38c41c0e094d8a461dd78f2d" - integrity sha512-Lrj/u53Ufqxl/sGxyjsJ2XNtNuEjDyjpqdhMNh5aZ+XFOdThL46KBj27Uem4ggoezSYBxKWAil6Hu8HtwqesYw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-dotall-regex@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.2.0.tgz#f0aabb93d120a8ac61e925ea0ba440812dbe0e49" - integrity sha512-sKxnyHfizweTgKZf7XsXu/CNupKhzijptfTM+bozonIuyVrLWVUvYjE2bhuSBML8VQeMxq4Mm63Q9qvcvUcciQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" - regexpu-core "^4.1.3" - -"@babel/plugin-transform-duplicate-keys@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz#d952c4930f312a4dbfff18f0b2914e60c35530b3" - integrity sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-exponentiation-operator@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008" - integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-for-of@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.2.0.tgz#ab7468befa80f764bb03d3cb5eef8cc998e1cad9" - integrity sha512-Kz7Mt0SsV2tQk6jG5bBv5phVbkd0gd27SgYD4hH1aLMJRchM0dzHaXvrWhVZ+WxAlDoAKZ7Uy3jVTW2mKXQ1WQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-function-name@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.2.0.tgz#f7930362829ff99a3174c39f0afcc024ef59731a" - integrity sha512-kWgksow9lHdvBC2Z4mxTsvc7YdY7w/V6B2vy9cTIPtLEE9NhwoWivaxdNM/S37elu5bqlLP/qOY906LukO9lkQ== - dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-literals@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1" - integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-modules-amd@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz#82a9bce45b95441f617a24011dc89d12da7f4ee6" - integrity sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw== - dependencies: - "@babel/helper-module-transforms" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-modules-commonjs@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz#c4f1933f5991d5145e9cfad1dfd848ea1727f404" - integrity sha512-V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ== - dependencies: - "@babel/helper-module-transforms" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-simple-access" "^7.1.0" - -"@babel/plugin-transform-modules-systemjs@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.2.0.tgz#912bfe9e5ff982924c81d0937c92d24994bb9068" - integrity sha512-aYJwpAhoK9a+1+O625WIjvMY11wkB/ok0WClVwmeo3mCjcNRjt+/8gHWrB5i+00mUju0gWsBkQnPpdvQ7PImmQ== - dependencies: - "@babel/helper-hoist-variables" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-modules-umd@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae" - integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw== - dependencies: - "@babel/helper-module-transforms" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.3.0": - version "7.3.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.3.0.tgz#140b52985b2d6ef0cb092ef3b29502b990f9cd50" - integrity sha512-NxIoNVhk9ZxS+9lSoAQ/LM0V2UEvARLttEHUrRDGKFaAxOYQcrkN/nLRE+BbbicCAvZPl7wMP0X60HsHE5DtQw== - dependencies: - regexp-tree "^0.1.0" - -"@babel/plugin-transform-new-target@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz#ae8fbd89517fa7892d20e6564e641e8770c3aa4a" - integrity sha512-yin069FYjah+LbqfGeTfzIBODex/e++Yfa0rH0fpfam9uTbuEeEOx5GLGr210ggOV77mVRNoeqSYqeuaqSzVSw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-object-super@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz#b35d4c10f56bab5d650047dad0f1d8e8814b6598" - integrity sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.1.0" - -"@babel/plugin-transform-parameters@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.2.0.tgz#0d5ad15dc805e2ea866df4dd6682bfe76d1408c2" - integrity sha512-kB9+hhUidIgUoBQ0MsxMewhzr8i60nMa2KgeJKQWYrqQpqcBYtnpR+JgkadZVZoaEZ/eKu9mclFaVwhRpLNSzA== - dependencies: - "@babel/helper-call-delegate" "^7.1.0" - "@babel/helper-get-function-arity" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-regenerator@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz#5b41686b4ed40bef874d7ed6a84bdd849c13e0c1" - integrity sha512-sj2qzsEx8KDVv1QuJc/dEfilkg3RRPvPYx/VnKLtItVQRWt1Wqf5eVCOLZm29CiGFfYYsA3VPjfizTCV0S0Dlw== - dependencies: - regenerator-transform "^0.13.3" - -"@babel/plugin-transform-runtime@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.2.0.tgz#566bc43f7d0aedc880eaddbd29168d0f248966ea" - integrity sha512-jIgkljDdq4RYDnJyQsiWbdvGeei/0MOTtSHKO/rfbd/mXBxNpdlulMx49L0HQ4pug1fXannxoqCI+fYSle9eSw== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - resolve "^1.8.1" - semver "^5.5.1" - -"@babel/plugin-transform-shorthand-properties@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0" - integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-spread@^7.2.0": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz#3103a9abe22f742b6d406ecd3cd49b774919b406" - integrity sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-sticky-regex@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1" - integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" - -"@babel/plugin-transform-template-literals@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz#d87ed01b8eaac7a92473f608c97c089de2ba1e5b" - integrity sha512-FkPix00J9A/XWXv4VoKJBMeSkyY9x/TqIh76wzcdfl57RJJcf8CehQ08uwfhCDNtRQYtHQKBTwKZDEyjE13Lwg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-typeof-symbol@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2" - integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-unicode-regex@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.2.0.tgz#4eb8db16f972f8abb5062c161b8b115546ade08b" - integrity sha512-m48Y0lMhrbXEJnVUaYly29jRXbQ3ksxPrS1Tg8t+MHqzXhtBYAvI51euOBaoAlZLPHsieY9XPVMf80a5x0cPcA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" - regexpu-core "^4.1.3" - -"@babel/polyfill@^7.2.5": - version "7.2.5" - resolved "https://registry.yarnpkg.com/@babel/polyfill/-/polyfill-7.2.5.tgz#6c54b964f71ad27edddc567d065e57e87ed7fa7d" - integrity sha512-8Y/t3MWThtMLYr0YNC/Q76tqN1w30+b0uQMeFUYauG2UGTR19zyUtFrAzT23zNtBxPp+LbE5E/nwV/q/r3y6ug== - dependencies: - core-js "^2.5.7" - regenerator-runtime "^0.12.0" - -"@babel/preset-env@^7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.3.1.tgz#389e8ca6b17ae67aaf9a2111665030be923515db" - integrity sha512-FHKrD6Dxf30e8xgHQO0zJZpUPfVZg+Xwgz5/RdSWCbza9QLNk4Qbp40ctRoqDxml3O8RMzB1DU55SXeDG6PqHQ== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-async-generator-functions" "^7.2.0" - "@babel/plugin-proposal-json-strings" "^7.2.0" - "@babel/plugin-proposal-object-rest-spread" "^7.3.1" - "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.2.0" - "@babel/plugin-syntax-async-generators" "^7.2.0" - "@babel/plugin-syntax-json-strings" "^7.2.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" - "@babel/plugin-transform-arrow-functions" "^7.2.0" - "@babel/plugin-transform-async-to-generator" "^7.2.0" - "@babel/plugin-transform-block-scoped-functions" "^7.2.0" - "@babel/plugin-transform-block-scoping" "^7.2.0" - "@babel/plugin-transform-classes" "^7.2.0" - "@babel/plugin-transform-computed-properties" "^7.2.0" - "@babel/plugin-transform-destructuring" "^7.2.0" - "@babel/plugin-transform-dotall-regex" "^7.2.0" - "@babel/plugin-transform-duplicate-keys" "^7.2.0" - "@babel/plugin-transform-exponentiation-operator" "^7.2.0" - "@babel/plugin-transform-for-of" "^7.2.0" - "@babel/plugin-transform-function-name" "^7.2.0" - "@babel/plugin-transform-literals" "^7.2.0" - "@babel/plugin-transform-modules-amd" "^7.2.0" - "@babel/plugin-transform-modules-commonjs" "^7.2.0" - "@babel/plugin-transform-modules-systemjs" "^7.2.0" - "@babel/plugin-transform-modules-umd" "^7.2.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.3.0" - "@babel/plugin-transform-new-target" "^7.0.0" - "@babel/plugin-transform-object-super" "^7.2.0" - "@babel/plugin-transform-parameters" "^7.2.0" - "@babel/plugin-transform-regenerator" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.2.0" - "@babel/plugin-transform-spread" "^7.2.0" - "@babel/plugin-transform-sticky-regex" "^7.2.0" - "@babel/plugin-transform-template-literals" "^7.2.0" - "@babel/plugin-transform-typeof-symbol" "^7.2.0" - "@babel/plugin-transform-unicode-regex" "^7.2.0" - browserslist "^4.3.4" - invariant "^2.2.2" - js-levenshtein "^1.1.3" - semver "^5.3.0" - -"@babel/runtime@^7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.3.1.tgz#574b03e8e8a9898eaf4a872a92ea20b7846f6f2a" - integrity sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA== - dependencies: - regenerator-runtime "^0.12.0" - -"@babel/template@^7.1.0", "@babel/template@^7.1.2", "@babel/template@^7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.2.2.tgz#005b3fdf0ed96e88041330379e0da9a708eb2907" - integrity sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.2.2" - "@babel/types" "^7.2.2" - -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.1.5", "@babel/traverse@^7.2.2", "@babel/traverse@^7.2.3": - version "7.2.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.2.3.tgz#7ff50cefa9c7c0bd2d81231fdac122f3957748d8" - integrity sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.2.2" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.0.0" - "@babel/parser" "^7.2.3" - "@babel/types" "^7.2.2" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.10" - -"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.2.2", "@babel/types@^7.3.0", "@babel/types@^7.3.2": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.3.2.tgz#424f5be4be633fff33fb83ab8d67e4a8290f5a2f" - integrity sha512-3Y6H8xlUlpbGR+XvawiH0UXehqydTmNmEpozWcXymqwcrwYAl5KMvKtQ+TF6f6E08V6Jur7v/ykdDSF+WDEIXQ== - dependencies: - esutils "^2.0.2" - lodash "^4.17.10" - to-fast-properties "^2.0.0" - -"@csstools/convert-colors@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" - integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== - -"@fortawesome/fontawesome-common-types@^0.2.14": - version "0.2.14" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.14.tgz#0eb86a77ac88e8c12c48591735283f0bf0ea5606" - integrity sha512-LOcvERCI96KioXSIfOYN4IATv2ROJOyf72dYnpoWfOIkuyLp45oMej1kL03kYdzvktLCzYhykgHwiu6nkg9Xbw== - -"@fortawesome/fontawesome-svg-core@^1.2.12", "@fortawesome/fontawesome-svg-core@^1.2.14": - version "1.2.14" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.14.tgz#48fde5fbfa223cffd5fac9c0402cfbe87605a7d0" - integrity sha512-T1qCqkwm9PuvK53J64D1ovfrOTa1kG+SrHNj5cFst/rrskhCnbxpRdbqFIdc/thmXC0ebBX8nOUyja2/mrxe4g== - dependencies: - "@fortawesome/fontawesome-common-types" "^0.2.14" - -"@fortawesome/free-brands-svg-icons@^5.7.1": - version "5.7.1" - resolved "https://registry.yarnpkg.com/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-5.7.1.tgz#20711fe4d6a459161d052171169baa175b90fca1" - integrity sha512-YU+np8UJGjHUmzfGS5yyK0wWR0QHbx5lTFRSylBfEkm8QXvOkRxB03sUhOSIWVXU7iPiePuqrsglQRgxoG4nrw== - dependencies: - "@fortawesome/fontawesome-common-types" "^0.2.14" - -"@fortawesome/free-solid-svg-icons@^5.7.1": - version "5.7.1" - resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.7.1.tgz#df41b8643383862a2af93456e7129e5ffc0fb7ae" - integrity sha512-5V/Q+JoPzuiIHW2JwmZGvE9bHguvNJKa7611DPo51uIvYv9LweX/SnDF+HC23X2W5T3myHhnGi+EZJTmidAmyg== - dependencies: - "@fortawesome/fontawesome-common-types" "^0.2.14" - -"@fortawesome/vue-fontawesome@^0.1.4", "@fortawesome/vue-fontawesome@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@fortawesome/vue-fontawesome/-/vue-fontawesome-0.1.5.tgz#ea70a4d4ad0d6d617048a5b2a2ff33e21fe47d61" - integrity sha512-tiNZCgh+ZkUsyFfm2MQMMdHKRrKj82M7g0XFPSNNY+s5nRB82soy0US+xj0jGRy433b0c4WpylCOhgle3294Uw== - -"@fullhuman/postcss-purgecss@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@fullhuman/postcss-purgecss/-/postcss-purgecss-1.1.0.tgz#fa423630e01b09604de42637f89eac72471b8961" - integrity sha512-NaNJgn4ZtrWveVnele/eCW/AJYL6dwG6AW86QYQQsqOsXy8rHsA1LoDxuFye0a9PKA7lbH3h4/OxzMwkGDCqXQ== - dependencies: - purgecss "^1.0.0" - -"@nuxt/babel-preset-app@2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@nuxt/babel-preset-app/-/babel-preset-app-2.4.3.tgz#5204dc1e533175f1566d206f32ccdd90477f3908" - integrity sha512-sRJijtpWtJD/3qgdXvjMDN03eeyrGGy9dudB10MwLesr2K8BHDXj6lTwkGu1Agmzhm6EREDPQm7EFDnicWGlsw== - dependencies: - "@babel/core" "^7.2.2" - "@babel/plugin-proposal-class-properties" "^7.3.0" - "@babel/plugin-proposal-decorators" "^7.3.0" - "@babel/plugin-syntax-dynamic-import" "^7.2.0" - "@babel/plugin-transform-runtime" "^7.2.0" - "@babel/preset-env" "^7.3.1" - "@babel/runtime" "^7.3.1" - "@vue/babel-preset-jsx" "^1.0.0-beta.2" - -"@nuxt/builder@2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@nuxt/builder/-/builder-2.4.3.tgz#efb5efd2c60a317fd3323094c3ee3c056038c319" - integrity sha512-NERExN0MU16fLz84I+jaNwHSUUbV1/TzIUWAH2l2Vu7nxnaJKolg+cNnRmHs9bxlEc4wZR9dHE17iiDdvtsCww== - dependencies: - "@nuxt/devalue" "^1.2.0" - "@nuxt/utils" "2.4.3" - "@nuxt/vue-app" "2.4.3" - chokidar "^2.0.4" - consola "^2.3.2" - fs-extra "^7.0.1" - glob "^7.1.3" - hash-sum "^1.0.2" - lodash "^4.17.11" - pify "^4.0.1" - semver "^5.6.0" - serialize-javascript "^1.6.1" - upath "^1.1.0" - -"@nuxt/cli@2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@nuxt/cli/-/cli-2.4.3.tgz#e4eb3a1c875b3f871aca33bce3fe3ace8a8639ba" - integrity sha512-2GGCA2w7P03Dr+B4nKjoWJWmUymMo5T3iEsmCVWxV0YaWLzP3NG99+butiWK9i2DJZ12PpLIafeNOxUfZ7zgWw== - dependencies: - "@nuxt/config" "2.4.3" - boxen "^2.1.0" - chalk "^2.4.2" - consola "^2.3.2" - esm "^3.1.4" - execa "^1.0.0" - minimist "^1.2.0" - pretty-bytes "^5.1.0" - std-env "^2.2.1" - wrap-ansi "^4.0.0" - -"@nuxt/config@2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@nuxt/config/-/config-2.4.3.tgz#bfe38f2c2e43cea4503bb03af7f245a3f7f205df" - integrity sha512-SmruJidBc+NX8lsnkt92SyA8saN5N4S+yy+ut93uNSMA2ab9d42l/QtrEA1H4djLo4yyOXvnuTg5c867a3DIqg== - dependencies: - "@nuxt/utils" "2.4.3" - consola "^2.3.2" - std-env "^2.2.1" - -"@nuxt/core@2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@nuxt/core/-/core-2.4.3.tgz#138bbc791e919ebc10e1b473f4fa4453007eb931" - integrity sha512-G7AW5Xmhn0f8H6NnaCx47wDJhJclMTu7/ubB5ucddIvntGXZB6E0F2iQxiIIsti8Pl+CivPYKPW9/AMd02lKmg== - dependencies: - "@nuxt/config" "2.4.3" - "@nuxt/devalue" "^1.2.0" - "@nuxt/server" "2.4.3" - "@nuxt/utils" "2.4.3" - "@nuxt/vue-renderer" "2.4.3" - consola "^2.3.2" - debug "^4.1.1" - esm "^3.1.4" - fs-extra "^7.0.1" - hash-sum "^1.0.2" - std-env "^2.2.1" - -"@nuxt/devalue@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@nuxt/devalue/-/devalue-1.2.0.tgz#a76f12fbabf43fbfde6823942338674ba7ae3265" - integrity sha512-t4HOJiCc4uqjgDIFjLpVBom/071SroKiJW6fXMg1Tga1ahnSPHBvo7YIPjPzpVSzDJhwKHaio7t0J/trH4+43g== - dependencies: - consola "^2.3.0" - -"@nuxt/friendly-errors-webpack-plugin@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@nuxt/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-2.4.0.tgz#525ad27dca736f5b0554b4d3675c586e8f6d3959" - integrity sha512-WF2Gx0A20toPFBxU4zBNOs2mEvxtD1Mr0t8UbsWr6J/8Es35iSzWw9h9V6R/mhtj/r4nnt56EwLgsByiqCvZKA== - dependencies: - chalk "^2.3.2" - consola "^2.0.0-1" - error-stack-parser "^2.0.0" - string-width "^2.0.0" - -"@nuxt/generator@2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@nuxt/generator/-/generator-2.4.3.tgz#80f1636a798a953e7c45b8741862f94a2818de41" - integrity sha512-tlOfKzFN+OUxLWXVXkhI6bYJjLKeQp1dhvyzitwYcsplWYE6NMLAE/a+DepbMknqE2COSEqkz1rPPa8K2x/4gw== - dependencies: - "@nuxt/utils" "2.4.3" - chalk "^2.4.2" - consola "^2.3.2" - fs-extra "^7.0.1" - html-minifier "^3.5.21" - -"@nuxt/opencollective@^0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@nuxt/opencollective/-/opencollective-0.2.1.tgz#8290f1220072637e575c3935733719a78ad2d056" - integrity sha512-NP2VSUKRFGutbhWeKgIU0MnY4fmpH8UWxxwTJNPurCQ5BeWhOxp+Gp5ltO39P/Et/J2GYGb3+ALNqZJ+5cGBBw== - dependencies: - chalk "^2.4.1" - consola "^2.3.0" - node-fetch "^2.3.0" - -"@nuxt/server@2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@nuxt/server/-/server-2.4.3.tgz#d00a1c9c380b512e7b79150a212c8c2876aa69fd" - integrity sha512-7zAWLfsKdg3hK2EGkqlVw8Ol3LQ5FJzyahHIrn5wEu7+GB2cu1pS2si6Sd9f0Z31iutyo1MqT9TFvYOmdQF2wQ== - dependencies: - "@nuxt/config" "2.4.3" - "@nuxt/utils" "2.4.3" - "@nuxtjs/youch" "^4.2.3" - chalk "^2.4.2" - compression "^1.7.3" - connect "^3.6.6" - consola "^2.3.2" - etag "^1.8.1" - fresh "^0.5.2" - fs-extra "^7.0.1" - ip "^1.1.5" - launch-editor-middleware "^2.2.1" - on-headers "^1.0.1" - pify "^4.0.1" - semver "^5.6.0" - serve-placeholder "^1.1.0" - serve-static "^1.13.2" - server-destroy "^1.0.1" - ua-parser-js "^0.7.19" - -"@nuxt/utils@2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@nuxt/utils/-/utils-2.4.3.tgz#15d1b38ec7abbf9a35689bb9cf1c70b8c164ee21" - integrity sha512-yOKWFDqHH1RDZ8YdlfOyJ5JD+KnEgNsVVEbaZKPEqO7Or8j77i6J9niCuF+eF/IR7KiBWOzaGDJApxyAW/ZoSQ== - dependencies: - consola "^2.3.2" - serialize-javascript "^1.6.1" - -"@nuxt/vue-app@2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@nuxt/vue-app/-/vue-app-2.4.3.tgz#ff12e84a5c4708741ee5ca4b4db813f30610ce7a" - integrity sha512-yvCMeuWnN5gA3MhpcrOlPT6hyzCZsR99NqmPqVHA1mWbarPASwgD7wDM4IKK+ajo7Jo70Ti/QnHIvnD11i+djg== - dependencies: - vue "^2.5.22" - vue-meta "^1.5.8" - vue-no-ssr "^1.1.1" - vue-router "^3.0.2" - vue-template-compiler "^2.5.22" - vuex "^3.1.0" - -"@nuxt/vue-renderer@2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@nuxt/vue-renderer/-/vue-renderer-2.4.3.tgz#9ccb39224d7bc7a2b8ea6af0f6c4c4ac35c5358e" - integrity sha512-pSqlACUhbDUHxDshJPeeHuw9eHoXkS7OrlEmP8uMKnONXs16Dm6CfqZC1ca9jtPCieLkNV3FSDRCG+HnkbZG3Q== - dependencies: - "@nuxt/devalue" "^1.2.0" - "@nuxt/utils" "2.4.3" - consola "^2.3.2" - fs-extra "^7.0.1" - lru-cache "^5.1.1" - vue "^2.5.22" - vue-meta "^1.5.8" - vue-server-renderer "^2.5.22" - -"@nuxt/webpack@2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@nuxt/webpack/-/webpack-2.4.3.tgz#2b92dd97d4d9b7f24bc51cd1ca78bf60cc68f604" - integrity sha512-045TIOF94NLu/QqK1FQ7vELpKQacCStBFlGwTWNFAAIi2qAWY1NvSi64y1+2jSTjloGtXXojop9/9ddH518/yA== - dependencies: - "@babel/core" "^7.2.2" - "@babel/polyfill" "^7.2.5" - "@nuxt/babel-preset-app" "2.4.3" - "@nuxt/friendly-errors-webpack-plugin" "^2.4.0" - "@nuxt/utils" "2.4.3" - babel-loader "^8.0.5" - cache-loader "^2.0.1" - caniuse-lite "^1.0.30000932" - chalk "^2.4.2" - consola "^2.3.2" - css-loader "^2.1.0" - cssnano "^4.1.8" - eventsource-polyfill "^0.9.6" - extract-css-chunks-webpack-plugin "^3.3.2" - file-loader "^3.0.1" - fs-extra "^7.0.1" - glob "^7.1.3" - hard-source-webpack-plugin "^0.13.1" - hash-sum "^1.0.2" - html-webpack-plugin "^3.2.0" - memory-fs "^0.4.1" - optimize-css-assets-webpack-plugin "^5.0.1" - pify "^4.0.1" - postcss "^7.0.14" - postcss-import "^12.0.1" - postcss-import-resolver "^1.1.0" - postcss-loader "^3.0.0" - postcss-preset-env "^6.5.0" - postcss-url "^8.0.0" - std-env "^2.2.1" - style-resources-loader "^1.2.1" - terser-webpack-plugin "^1.2.2" - thread-loader "^1.2.0" - time-fix-plugin "^2.0.5" - url-loader "^1.1.2" - vue-loader "^15.6.2" - webpack "^4.29.2" - webpack-bundle-analyzer "^3.0.3" - webpack-dev-middleware "^3.5.1" - webpack-hot-middleware "^2.24.3" - webpack-node-externals "^1.7.2" - webpackbar "^3.1.5" - -"@nuxtjs/axios@^5.3.6": - version "5.3.6" - resolved "https://registry.yarnpkg.com/@nuxtjs/axios/-/axios-5.3.6.tgz#1bad5af6e30977809cddd5248dd3b41271d1dc14" - integrity sha512-kxtiHW1QCYHaztKEkBnqH/GQoQoVubHdBWMC9+X0cVaA3AwOFsGI3Ef4/dSX8coSto7D+nV8LH3rVjbaFT+KUg== - dependencies: - "@nuxtjs/proxy" "^1.3.0" - axios "^0.18.0" - axios-retry "^3.1.1" - consola "^1.4.4" - -"@nuxtjs/proxy@^1.3.0": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@nuxtjs/proxy/-/proxy-1.3.1.tgz#7d76179aff321491f126d6560434579a4dc7a89a" - integrity sha512-agcTJVRCY0XfZcGV573bdIQLsg9fr5p6zikpxtUzR3xywdUBJ+JMKAiz3ew15bOZGK8lVS8u/PBmZ33iEhr3rg== - dependencies: - consola "^1.4.4" - http-proxy-middleware "^0.19.0" - -"@nuxtjs/youch@^4.2.3": - version "4.2.3" - resolved "https://registry.yarnpkg.com/@nuxtjs/youch/-/youch-4.2.3.tgz#36f8b22df5a0efaa81373109851e1d857aca6bed" - integrity sha512-XiTWdadTwtmL/IGkNqbVe+dOlT+IMvcBu7TvKI7plWhVQeBCQ9iKhk3jgvVWFyiwL2yHJDlEwOM5v9oVES5Xmw== - dependencies: - cookie "^0.3.1" - mustache "^2.3.0" - stack-trace "0.0.10" - -"@types/q@^1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.1.tgz#48fd98c1561fe718b61733daed46ff115b496e18" - integrity sha512-eqz8c/0kwNi/OEHQfvIuJVLTst3in0e7uTKeuY+WL/zfKn0xVujOTp42bS/vUUokhK5P2BppLd9JXMOMHcgbjA== - -"@vue/babel-helper-vue-jsx-merge-props@^1.0.0-beta.2": - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.0.0-beta.2.tgz#f3e20d77b89ddb7a4b9b7a75372f05cd3ac22d92" - integrity sha512-Yj92Q1GcGjjctecBfnBmVqKSlMdyZaVq10hlZB4HSd1DJgu4cWgpEImJSzcJRUCZmas6UigwE7f4IjJuQs+JvQ== - -"@vue/babel-plugin-transform-vue-jsx@^1.0.0-beta.2": - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.0.0-beta.2.tgz#6f7903fe66a34a02163f418c426cf419e862d97e" - integrity sha512-fvAymRZAPHitomRE+jIipWRj0STXNSMqeOSdOFu9Ffjqg9WGOxSdCjORxexManfZ2y5QDv7gzI1xfgprsK3nlw== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.2.0" - "@vue/babel-helper-vue-jsx-merge-props" "^1.0.0-beta.2" - html-tags "^2.0.0" - lodash.kebabcase "^4.1.1" - svg-tags "^1.0.0" - -"@vue/babel-preset-jsx@^1.0.0-beta.2": - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/@vue/babel-preset-jsx/-/babel-preset-jsx-1.0.0-beta.2.tgz#3e5dc2b73da58391c1c7327c2bd2ef154fe4e46e" - integrity sha512-nZoAKBR/h6iPMQ66ieQcIdlpPBmqhtUUcgjBS541jIVxSog1rwzrc00jlsuecLonzUMWPU0PabyitsG74vhN1w== - dependencies: - "@vue/babel-helper-vue-jsx-merge-props" "^1.0.0-beta.2" - "@vue/babel-plugin-transform-vue-jsx" "^1.0.0-beta.2" - "@vue/babel-sugar-functional-vue" "^1.0.0-beta.2" - "@vue/babel-sugar-inject-h" "^1.0.0-beta.2" - "@vue/babel-sugar-v-model" "^1.0.0-beta.2" - "@vue/babel-sugar-v-on" "^1.0.0-beta.2" - -"@vue/babel-sugar-functional-vue@^1.0.0-beta.2": - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.0.0-beta.2.tgz#8831f686e7614f282d5170b902483ef538deef38" - integrity sha512-5qvi4hmExgjtrESDk0vflL69dIxkDAukJcYH9o4663E8Nh12Jpbmr+Ja8WmgkAPtTVhk90UVcVUFCCZLHBmhkQ== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@vue/babel-sugar-inject-h@^1.0.0-beta.2": - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.0.0-beta.2.tgz#5f92f994bf4b4126fad8633f554e8a426b51b413" - integrity sha512-qGXZ6yE+1trk82xCVJ9j3shsgI+R2ePj3+o8b2Ee7JNaRqQvMfTwpgx5BRlk4q1+CTjvYexdqBS+q4Kg7sSxcg== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@vue/babel-sugar-v-model@^1.0.0-beta.2": - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.0.0-beta.2.tgz#051d3ae3ef5e70d514e09058ec5790f6a42e8c28" - integrity sha512-63US3IMEtATJzzK2le/Na53Sk2bp3LHfwZ8eMFwbTaz6e2qeV9frBl3ZYaha64ghT4IDSbrDXUmm0J09EAzFfA== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - "@vue/babel-helper-vue-jsx-merge-props" "^1.0.0-beta.2" - "@vue/babel-plugin-transform-vue-jsx" "^1.0.0-beta.2" - camelcase "^5.0.0" - html-tags "^2.0.0" - svg-tags "^1.0.0" - -"@vue/babel-sugar-v-on@^1.0.0-beta.2": - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.0.0-beta.2.tgz#3e2d122e229b10017f091d178346b601d9245260" - integrity sha512-XH/m3k11EKdMY0MrTg4+hQv8BFM8juzHT95chYkgxDmvDdVJnSCuf9+mcysEJttWD4PVuUGN7EHoIWsIhC0dRw== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - "@vue/babel-plugin-transform-vue-jsx" "^1.0.0-beta.2" - camelcase "^5.0.0" - -"@vue/component-compiler-utils@^2.5.1": - version "2.5.2" - resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-2.5.2.tgz#a8d57e773354ab10e4742c7d6a8dd86184d4d7be" - integrity sha512-3exq9O89GXo9E+CGKzgURCbasG15FtFMs8QRrCUVWGaKue4Egpw41MHb3Avtikv1VykKfBq3FvAnf9Nx3sdVJg== - dependencies: - consolidate "^0.15.1" - hash-sum "^1.0.2" - lru-cache "^4.1.2" - merge-source-map "^1.1.0" - postcss "^7.0.14" - postcss-selector-parser "^5.0.0" - prettier "1.16.3" - source-map "~0.6.1" - vue-template-es2015-compiler "^1.8.2" - -"@webassemblyjs/ast@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.7.11.tgz#b988582cafbb2b095e8b556526f30c90d057cace" - integrity sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA== - dependencies: - "@webassemblyjs/helper-module-context" "1.7.11" - "@webassemblyjs/helper-wasm-bytecode" "1.7.11" - "@webassemblyjs/wast-parser" "1.7.11" - -"@webassemblyjs/floating-point-hex-parser@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz#a69f0af6502eb9a3c045555b1a6129d3d3f2e313" - integrity sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg== - -"@webassemblyjs/helper-api-error@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz#c7b6bb8105f84039511a2b39ce494f193818a32a" - integrity sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg== - -"@webassemblyjs/helper-buffer@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz#3122d48dcc6c9456ed982debe16c8f37101df39b" - integrity sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w== - -"@webassemblyjs/helper-code-frame@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz#cf8f106e746662a0da29bdef635fcd3d1248364b" - integrity sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw== - dependencies: - "@webassemblyjs/wast-printer" "1.7.11" - -"@webassemblyjs/helper-fsm@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz#df38882a624080d03f7503f93e3f17ac5ac01181" - integrity sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A== - -"@webassemblyjs/helper-module-context@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz#d874d722e51e62ac202476935d649c802fa0e209" - integrity sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg== - -"@webassemblyjs/helper-wasm-bytecode@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz#dd9a1e817f1c2eb105b4cf1013093cb9f3c9cb06" - integrity sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ== - -"@webassemblyjs/helper-wasm-section@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz#9c9ac41ecf9fbcfffc96f6d2675e2de33811e68a" - integrity sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-buffer" "1.7.11" - "@webassemblyjs/helper-wasm-bytecode" "1.7.11" - "@webassemblyjs/wasm-gen" "1.7.11" - -"@webassemblyjs/ieee754@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz#c95839eb63757a31880aaec7b6512d4191ac640b" - integrity sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.7.11.tgz#d7267a1ee9c4594fd3f7e37298818ec65687db63" - integrity sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw== - dependencies: - "@xtuc/long" "4.2.1" - -"@webassemblyjs/utf8@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.7.11.tgz#06d7218ea9fdc94a6793aa92208160db3d26ee82" - integrity sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA== - -"@webassemblyjs/wasm-edit@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz#8c74ca474d4f951d01dbae9bd70814ee22a82005" - integrity sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-buffer" "1.7.11" - "@webassemblyjs/helper-wasm-bytecode" "1.7.11" - "@webassemblyjs/helper-wasm-section" "1.7.11" - "@webassemblyjs/wasm-gen" "1.7.11" - "@webassemblyjs/wasm-opt" "1.7.11" - "@webassemblyjs/wasm-parser" "1.7.11" - "@webassemblyjs/wast-printer" "1.7.11" - -"@webassemblyjs/wasm-gen@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz#9bbba942f22375686a6fb759afcd7ac9c45da1a8" - integrity sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-wasm-bytecode" "1.7.11" - "@webassemblyjs/ieee754" "1.7.11" - "@webassemblyjs/leb128" "1.7.11" - "@webassemblyjs/utf8" "1.7.11" - -"@webassemblyjs/wasm-opt@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz#b331e8e7cef8f8e2f007d42c3a36a0580a7d6ca7" - integrity sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-buffer" "1.7.11" - "@webassemblyjs/wasm-gen" "1.7.11" - "@webassemblyjs/wasm-parser" "1.7.11" - -"@webassemblyjs/wasm-parser@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz#6e3d20fa6a3519f6b084ef9391ad58211efb0a1a" - integrity sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-api-error" "1.7.11" - "@webassemblyjs/helper-wasm-bytecode" "1.7.11" - "@webassemblyjs/ieee754" "1.7.11" - "@webassemblyjs/leb128" "1.7.11" - "@webassemblyjs/utf8" "1.7.11" - -"@webassemblyjs/wast-parser@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz#25bd117562ca8c002720ff8116ef9072d9ca869c" - integrity sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/floating-point-hex-parser" "1.7.11" - "@webassemblyjs/helper-api-error" "1.7.11" - "@webassemblyjs/helper-code-frame" "1.7.11" - "@webassemblyjs/helper-fsm" "1.7.11" - "@xtuc/long" "4.2.1" - -"@webassemblyjs/wast-printer@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz#c4245b6de242cb50a2cc950174fdbf65c78d7813" - integrity sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/wast-parser" "1.7.11" - "@xtuc/long" "4.2.1" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.1": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.1.tgz#5c85d662f76fa1d34575766c5dcd6615abcd30d8" - integrity sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g== - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -accepts@~1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" - integrity sha1-63d99gEXI6OxTopywIBcjoZ0a9I= - dependencies: - mime-types "~2.1.18" - negotiator "0.6.1" - -acorn-dynamic-import@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" - integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw== - -acorn-jsx@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e" - integrity sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg== - -acorn@^5.7.3: - version "5.7.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" - integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== - -acorn@^6.0.2, acorn@^6.0.5: - version "6.1.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.0.tgz#b0a3be31752c97a0f7013c5f4903b71a05db6818" - integrity sha512-MW/FjM+IvU9CgBzjO3UIPCE2pyEwUsoFl+VGdczOPEdxfGFjuKny/gN54mOuX7Qxmb9Rg9MCn2oKiSUeW+pjrw== - -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - -ajv-keywords@^3.1.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.3.0.tgz#cb6499da9b83177af8bc1732b2f0a1a1a3aacf8c" - integrity sha512-CMzN9S62ZOO4sA/mJZIO4S++ZM7KFWzH3PPWkveLhy4OZ9i1/VatgwWMD46w/XbGCBy7Ye0gCk+Za6mmyfKK7g== - -ajv@^6.1.0, ajv@^6.5.3, ajv@^6.6.1: - version "6.8.1" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.8.1.tgz#0890b93742985ebf8973cd365c5b23920ce3cb20" - integrity sha512-eqxCp82P+JfqL683wwsL73XmFs1eG6qjw+RD3YHx+Jll1r0jNd4dh8QG9NYAeNGA/hnZjeEDgtTskgJULbxpWQ== - dependencies: - fast-deep-equal "^2.0.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= - -ansi-align@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" - integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== - dependencies: - string-width "^3.0.0" - -ansi-colors@^3.0.0: - version "3.2.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" - integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== - -ansi-escapes@^3.1.0, ansi-escapes@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== - -ansi-html@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" - integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.0.0.tgz#70de791edf021404c3fd615aa89118ae0432e5a9" - integrity sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -aproba@^1.0.3, aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-filter@~0.0.0: - version "0.0.1" - resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" - integrity sha1-fajPLiZijtcygDWB/SH2fKzS7uw= - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - -array-map@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" - integrity sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI= - -array-reduce@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" - integrity sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys= - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -assert@^1.1.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" - integrity sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE= - dependencies: - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== - -async-each@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" - integrity sha1-GdOGodntxufByF04iu28xW0zYC0= - -async-limiter@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" - integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg== - -async@^2.3.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" - integrity sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ== - dependencies: - lodash "^4.17.10" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -atob@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -autoprefixer@^9.4.2, autoprefixer@^9.4.5, autoprefixer@^9.4.6: - version "9.4.7" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.4.7.tgz#f997994f9a810eae47b38fa6d8a119772051c4ff" - integrity sha512-qS5wW6aXHkm53Y4z73tFGsUhmZu4aMPV9iHXYlF0c/wxjknXNHuj/1cIQb+6YH692DbJGGWcckAXX+VxKvahMA== - dependencies: - browserslist "^4.4.1" - caniuse-lite "^1.0.30000932" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^7.0.14" - postcss-value-parser "^3.3.1" - -axios-retry@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/axios-retry/-/axios-retry-3.1.2.tgz#4f4dcbefb0b434e22b72bd5e28a027d77b8a3458" - integrity sha512-+X0mtJ3S0mmia1kTVi1eA3DAC+oWnT2A29g3CpkzcBPMT6vJm+hn/WiV9wPt/KXLHVmg5zev9mWqkPx7bHMovg== - dependencies: - is-retry-allowed "^1.1.0" - -axios@^0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.0.tgz#32d53e4851efdc0a11993b6cd000789d70c05102" - integrity sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI= - dependencies: - follow-redirects "^1.3.0" - is-buffer "^1.1.5" - -babel-eslint@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.1.tgz#919681dc099614cd7d31d45c8908695092a1faed" - integrity sha512-z7OT1iNV+TjOwHNLLyJk+HN+YVWX+CLE6fPD2SymJZOZQBs+QIexFjhm4keGTm8MW9xr4EC9Q0PbaLB24V5GoQ== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.0.0" - "@babel/traverse" "^7.0.0" - "@babel/types" "^7.0.0" - eslint-scope "3.7.1" - eslint-visitor-keys "^1.0.0" - -babel-extract-comments@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz#0a2aedf81417ed391b85e18b4614e693a0351a21" - integrity sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ== - dependencies: - babylon "^6.18.0" - -babel-loader@^8.0.5: - version "8.0.5" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.5.tgz#225322d7509c2157655840bba52e46b6c2f2fe33" - integrity sha512-NTnHnVRd2JnRqPC0vW+iOQWU5pchDbYXsG2E6DMXEpMfUcQKclF9gmf3G3ZMhzG7IG9ji4coL0cm+FxeWxDpnw== - dependencies: - find-cache-dir "^2.0.0" - loader-utils "^1.0.2" - mkdirp "^0.5.1" - util.promisify "^1.0.0" - -babel-plugin-syntax-object-rest-spread@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" - integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U= - -babel-plugin-transform-object-rest-spread@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" - integrity sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY= - dependencies: - babel-plugin-syntax-object-rest-spread "^6.8.0" - babel-runtime "^6.26.0" - -babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -base64-js@^1.0.2: - version "1.3.0" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" - integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - 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" - -bfj@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/bfj/-/bfj-6.1.1.tgz#05a3b7784fbd72cfa3c22e56002ef99336516c48" - integrity sha512-+GUNvzHR4nRyGybQc2WpNJL4MJazMuvf92ueIyA0bIkPRwhhQu3IfZQ2PSoVPpCBJfmoSdOxu5rnotfFLlvYRQ== - dependencies: - bluebird "^3.5.1" - check-types "^7.3.0" - hoopy "^0.1.2" - tryer "^1.0.0" - -big.js@^3.1.3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" - integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^1.0.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.0.tgz#9523e001306a32444b907423f1de2164222f6ab1" - integrity sha512-EgmjVLMn22z7eGGv3kcnHwSnJXmFHjISTY9E/S5lIcTD3Oxw05QTcBLNkJFzcb3cNueUdF/IN4U+d78V0zO8Hw== - -bluebird@^3.1.1, bluebird@^3.5.1, bluebird@^3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7" - integrity sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== - -body-parser@1.18.3: - version "1.18.3" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" - integrity sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ= - dependencies: - bytes "3.0.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "~1.6.3" - iconv-lite "0.4.23" - on-finished "~2.3.0" - qs "6.5.2" - raw-body "2.3.3" - type-is "~1.6.16" - -boolbase@^1.0.0, boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= - -boxen@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-2.1.0.tgz#8d576156e33fc26a34d6be8635fd16b1d745f0b2" - integrity sha512-luq3RQOt2U5sUX+fiu+qnT+wWnHDcATLpEe63jvge6GUZO99AKbVRfp97d2jgLvq1iQa0ORzaAm4lGVG52ZSlw== - dependencies: - ansi-align "^3.0.0" - camelcase "^5.0.0" - chalk "^2.4.1" - cli-boxes "^1.0.0" - string-width "^3.0.0" - term-size "^1.2.0" - widest-line "^2.0.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - 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" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - 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@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" - integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= - dependencies: - bn.js "^4.1.1" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.2" - elliptic "^6.0.0" - inherits "^2.0.1" - parse-asn1 "^5.0.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^4.0.0, browserslist@^4.3.4, browserslist@^4.3.5, browserslist@^4.4.1: - version "4.4.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.4.1.tgz#42e828954b6b29a7a53e352277be429478a69062" - integrity sha512-pEBxEXg7JwaakBXjATYw/D1YZh4QUSCX/Mnd/wnqSRPPSi1U39iDhDoKGoBUcraKdxDlrYqJxSI5nNvD+dWP2A== - dependencies: - caniuse-lite "^1.0.30000929" - electron-to-chromium "^1.3.103" - node-releases "^1.1.3" - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" - integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= - -bytes@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== - -cacache@^11.0.2: - version "11.3.2" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.2.tgz#2d81e308e3d258ca38125b676b98b2ac9ce69bfa" - integrity sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg== - dependencies: - bluebird "^3.5.3" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.3" - graceful-fs "^4.1.15" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.2" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - 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" - -cache-loader@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-2.0.1.tgz#5758f41a62d7c23941e3c3c7016e6faeb03acb07" - integrity sha512-V99T3FOynmGx26Zom+JrVBytLBsmUCzVG2/4NnUKgvXN4bEV42R1ERl1IyiH/cvFIDA1Ytq2lPZ9tXDSahcQpQ== - dependencies: - loader-utils "^1.1.0" - mkdirp "^0.5.1" - neo-async "^2.6.0" - normalize-path "^3.0.0" - schema-utils "^1.0.0" - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= - -callsites@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.0.0.tgz#fb7eb569b72ad7a45812f93fd9430a3e410b3dd3" - integrity sha512-tWnkwu9YEq2uzlBDI4RcLn8jrFvF9AOi8PxDNU3hZZjJcjkcRAq3vCI+vZcg1SuxISDYe86k9VZFwAxDiJGoAw== - -camel-case@3.0.x: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" - integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= - dependencies: - no-case "^2.2.0" - upper-case "^1.1.1" - -camelcase-css@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" - integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== - -camelcase@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42" - integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA== - -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000918, caniuse-lite@^1.0.30000929, caniuse-lite@^1.0.30000932: - version "1.0.30000935" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000935.tgz#d1b59df00b46f4921bb84a8a34c1d172b346df59" - integrity sha512-1Y2uJ5y56qDt3jsDTdBHL1OqiImzjoQcBG6Yl3Qizq8mcc2SgCFpi+ZwLLqkztYnk9l87IYqRlNBnPSOTbFkXQ== - -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -check-types@^7.3.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/check-types/-/check-types-7.4.0.tgz#0378ec1b9616ec71f774931a3c6516fad8c152f4" - integrity sha512-YbulWHdfP99UfZ73NcUDlNJhEIDgm9Doq9GhpyXbF+7Aegi3CVV7qqMCKTTqJxlvEvnQBp9IA+dxsGN6xK/nSg== - -chokidar@^2.0.2, chokidar@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.0.tgz#5fcb70d0b28ebe0867eb0f09d5f6a08f29a1efa0" - integrity sha512-5t6G2SH8eO6lCvYOoUpaRnF5Qfd//gd7qJAkwRUw9qlGVkiQ13uwQngqbWWaurOsaAm9+kUGbITADxt6H0XFNQ== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - 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.0" - optionalDependencies: - fsevents "^1.2.7" - -chownr@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" - integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== - -chrome-trace-event@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz#45a91bd2c20c9411f0963b5aaeb9a1b95e09cc48" - integrity sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A== - dependencies: - tslib "^1.9.0" - -ci-info@^1.5.0, ci-info@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" - integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -circular-json@^0.3.1: - version "0.3.3" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" - integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -clean-css@4.2.x: - version "4.2.1" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.1.tgz#2d411ef76b8569b6d0c84068dabe85b0aa5e5c17" - integrity sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g== - dependencies: - source-map "~0.6.0" - -cli-boxes@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" - integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= - -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= - dependencies: - restore-cursor "^2.0.0" - -cli-table3@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" - integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== - dependencies: - object-assign "^4.1.0" - string-width "^2.1.1" - optionalDependencies: - colors "^1.1.2" - -cli-width@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" - integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= - -cliui@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" - integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== - dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - wrap-ansi "^2.0.0" - -coa@~2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" - -coalescy@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/coalescy/-/coalescy-1.0.0.tgz#4b065846b836361ada6c4b4a4abf4bc1cac31bf1" - integrity sha1-SwZYRrg2NhrabEtKSr9LwcrDG/E= - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0, color-convert@^1.9.1: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.5.2: - version "1.5.3" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" - integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/color/-/color-3.1.0.tgz#d8e9fb096732875774c84bf922815df0308d0ffc" - integrity sha512-CwyopLkuRYO5ei2EpzpIh6LqJMt6Mt+jZhO5VI5f/wJLZriXQE32/SSqzmrh+QB+AZT81Cj8yv+7zwToW8ahZg== - dependencies: - color-convert "^1.9.1" - color-string "^1.5.2" - -colors@^1.1.2: - version "1.3.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" - integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg== - -colors@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" - integrity sha1-FopHAXVran9RoSzgyXv6KMCE7WM= - -combined-stream@^1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828" - integrity sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w== - dependencies: - delayed-stream "~1.0.0" - -commander@2.17.x, commander@~2.17.1: - version "2.17.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" - integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== - -commander@^2.18.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" - integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== - -comment-regex@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/comment-regex/-/comment-regex-1.0.1.tgz#e070d2c4db33231955d0979d27c918fcb6f93565" - integrity sha512-IWlN//Yfby92tOIje7J18HkNmWRR7JESA/BK8W7wqY/akITpU5B0JQWnbTjCfdChSrDNb0DrdA9jfAxiiBXyiQ== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -component-emitter@^1.2.0, component-emitter@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= - -compressible@~2.0.14: - version "2.0.15" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.15.tgz#857a9ab0a7e5a07d8d837ed43fe2defff64fe212" - integrity sha512-4aE67DL33dSW9gw4CI2H/yTxqHLNcxp0yS6jB+4h+wr3e43+1z7vm0HU9qXOH8j+qjKuL8+UtkOxYQSMq60Ylw== - dependencies: - mime-db ">= 1.36.0 < 2" - -compression@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.3.tgz#27e0e176aaf260f7f2c2813c3e440adb9f1993db" - integrity sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.14" - debug "2.6.9" - on-headers "~1.0.1" - safe-buffer "5.1.2" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@^1.5.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -connect@^3.6.6: - version "3.6.6" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.6.tgz#09eff6c55af7236e137135a72574858b6786f524" - integrity sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ= - dependencies: - debug "2.6.9" - finalhandler "1.1.0" - parseurl "~1.3.2" - utils-merge "1.0.1" - -consola@^1.4.4, consola@^1.4.5: - version "1.4.5" - resolved "https://registry.yarnpkg.com/consola/-/consola-1.4.5.tgz#09732d07cb50af07332e54e0f42fafb92b962c4a" - integrity sha512-movqq3MbyXbSf7cG/x+EbO3VjKQVZPB/zeB5+lN1TuBYh9BWDemLQca9P+a4xpO4lXva9rz+Bd8XyqlH136Lww== - dependencies: - chalk "^2.3.2" - figures "^2.0.0" - lodash "^4.17.5" - std-env "^1.1.0" - -consola@^2.0.0-1, consola@^2.3.0, consola@^2.3.2: - version "2.4.0" - resolved "https://registry.yarnpkg.com/consola/-/consola-2.4.0.tgz#d13c711cd0648a600ca68b399b739cf8f5058097" - integrity sha512-fy9j1unXm/bXgk6dPMnwktTJqkAPgm/s28k+wZ/O7XeVgGXDPRXu/hcE12I68iqjk63W6No1J6TQlHQQOMIVhA== - dependencies: - chalk "^2.4.2" - dayjs "^1.8.3" - figures "^2.0.0" - std-env "^2.2.1" - string-width "^3.0.0" - -console-browserify@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= - dependencies: - date-now "^0.1.4" - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= - -consolidate@^0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7" - integrity sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw== - dependencies: - bluebird "^3.1.1" - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - -content-disposition@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" - integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ= - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -convert-source-map@^1.1.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" - integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== - dependencies: - safe-buffer "~5.1.1" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.3.1, cookie@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" - integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= - -cookiejar@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.2.tgz#dd8a235530752f988f9a0844f3fc589e3111125c" - integrity sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA== - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -core-js@^2.4.0, core-js@^2.5.7: - version "2.6.4" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.4.tgz#b8897c062c4d769dd30a0ac5c73976c47f92ea0d" - integrity sha512-05qQ5hXShcqGkPZpXEFLIpxayZscVD2kuMBZewxiIPPEagukO4mqgPA9CWhUvFBJfy3ODdK2p9xyHh7FTU9/7A== - -core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -cosmiconfig@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-4.0.0.tgz#760391549580bbd2df1e562bc177b13c290972dc" - integrity sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ== - dependencies: - is-directory "^0.3.1" - js-yaml "^3.9.0" - parse-json "^4.0.0" - require-from-string "^2.0.1" - -cosmiconfig@^5.0.0: - version "5.0.7" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.7.tgz#39826b292ee0d78eda137dfa3173bd1c21a43b04" - integrity sha512-PcLqxTKiDmNT6pSpy4N6KtuPwb53W+2tzNvwOZw0WH9N6O0vLIBq0x8aj8Oj75ere4YcGi48bDFCL+3fRJdlNA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.9.0" - parse-json "^4.0.0" - -create-ecdh@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" - integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -create-hash@^1.1.0, create-hash@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - 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@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - 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@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^6.0.0, cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - 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-blank-pseudo@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5" - integrity sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w== - dependencies: - postcss "^7.0.5" - -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= - -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== - dependencies: - postcss "^7.0.1" - timsort "^0.3.0" - -css-has-pseudo@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz#3c642ab34ca242c59c41a125df9105841f6966ee" - integrity sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^5.0.0-rc.4" - -css-loader@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-2.1.0.tgz#42952ac22bca5d076978638e9813abce49b8f0cc" - integrity sha512-MoOu+CStsGrSt5K2OeZ89q3Snf+IkxRfAIt9aAKg4piioTrhtP1iEFPu+OVn3Ohz24FO6L+rw9UJxBILiSBw5Q== - dependencies: - icss-utils "^4.0.0" - loader-utils "^1.2.1" - lodash "^4.17.11" - postcss "^7.0.6" - postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^2.0.3" - postcss-modules-scope "^2.0.0" - postcss-modules-values "^2.0.0" - postcss-value-parser "^3.3.0" - schema-utils "^1.0.0" - -css-prefers-color-scheme@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz#6f830a2714199d4f0d0d0bb8a27916ed65cff1f4" - integrity sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg== - dependencies: - postcss "^7.0.5" - -css-select-base-adapter@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" - integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= - dependencies: - boolbase "~1.0.0" - css-what "2.1" - domutils "1.5.1" - nth-check "~1.0.1" - -css-select@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.0.2.tgz#ab4386cec9e1f668855564b17c3733b43b2a5ede" - integrity sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ== - dependencies: - boolbase "^1.0.0" - css-what "^2.1.2" - domutils "^1.7.0" - nth-check "^1.0.2" - -css-selector-tokenizer@^0.7.0: - version "0.7.1" - resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz#a177271a8bca5019172f4f891fc6eed9cbf68d5d" - integrity sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA== - dependencies: - cssesc "^0.1.0" - fastparse "^1.1.1" - regexpu-core "^1.0.0" - -css-tree@1.0.0-alpha.28: - version "1.0.0-alpha.28" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.28.tgz#8e8968190d886c9477bc8d61e96f61af3f7ffa7f" - integrity sha512-joNNW1gCp3qFFzj4St6zk+Wh/NBv0vM5YbEreZk0SD4S23S+1xBKb6cLDg2uj4P4k/GUMlIm6cKIDqIG+vdt0w== - dependencies: - mdn-data "~1.1.0" - source-map "^0.5.3" - -css-tree@1.0.0-alpha.29: - version "1.0.0-alpha.29" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39" - integrity sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg== - dependencies: - mdn-data "~1.1.0" - source-map "^0.5.3" - -css-unit-converter@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996" - integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY= - -css-url-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/css-url-regex/-/css-url-regex-1.1.0.tgz#83834230cc9f74c457de59eebd1543feeb83b7ec" - integrity sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w= - -css-what@2.1, css-what@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.2.tgz#c0876d9d0480927d7d4920dcd72af3595649554d" - integrity sha512-wan8dMWQ0GUeF7DGEPVjhHemVW/vy6xUYmFzRY8RYqgA0JtXC9rJmbScBjqSu6dg9q0lwPQy6ZAmJVr3PPTvqQ== - -css.escape@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" - integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s= - -cssdb@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-4.3.0.tgz#2e1229900616f80c66ff2d568ea2b4f92db1c78c" - integrity sha512-VHPES/+c9s+I0ryNj+PXvp84nz+ms843z/efpaEINwP/QfGsINL3gpLp5qjapzDNzNzbXxur8uxKxSXImrg4ag== - -cssesc@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" - integrity sha1-yBSQPkViM3GgR3tAEJqq++6t27Q= - -cssesc@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" - integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== - -cssnano-preset-default@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.6.tgz#92379e2a6db4a91c0ea727f5f556eeac693eab6a" - integrity sha512-UPboYbFaJFtDUhJ4fqctThWbbyF4q01/7UhsZbLzp35l+nUxtzh1SifoVlEfyLM3n3Z0htd8B1YlCxy9i+bQvg== - dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.0" - postcss-colormin "^4.0.2" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.1" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.10" - postcss-merge-rules "^4.0.2" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.1" - postcss-minify-params "^4.0.1" - postcss-minify-selectors "^4.0.1" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.1" - postcss-normalize-positions "^4.0.1" - postcss-normalize-repeat-style "^4.0.1" - postcss-normalize-string "^4.0.1" - postcss-normalize-timing-functions "^4.0.1" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.1" - postcss-ordered-values "^4.1.1" - postcss-reduce-initial "^4.0.2" - postcss-reduce-transforms "^4.0.1" - postcss-svgo "^4.0.1" - postcss-unique-selectors "^4.0.1" - -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= - -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== - dependencies: - postcss "^7.0.0" - -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== - -cssnano@^4.1.0, cssnano@^4.1.8: - version "4.1.8" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.8.tgz#8014989679d5fd42491e4499a521dbfb85c95fd1" - integrity sha512-5GIY0VzAHORpbKiL3rMXp4w4M1Ki+XlXgEXyuWXVd3h6hlASb+9Vo76dNP56/elLMVBBsUfusCo1q56uW0UWig== - dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.6" - is-resolvable "^1.0.0" - postcss "^7.0.0" - -csso@^3.5.0: - version "3.5.1" - resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz#7b9eb8be61628973c1b261e169d2f024008e758b" - integrity sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg== - dependencies: - css-tree "1.0.0-alpha.29" - -cuint@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" - integrity sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs= - -cyclist@~0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" - integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA= - -date-now@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" - integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= - -dayjs@^1.8.3: - version "1.8.5" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.8.5.tgz#0b066770f89a20022218544989f3d23e5e8db29a" - integrity sha512-jo5sEFdsT43RqXxoqQVEuD7XL6iSIRxcjTgheJdlV0EHKObKP3pb9JcJEv/KStVMy25ABNQrFnplKcCit05vOA== - -de-indent@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" - integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= - -debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@=3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= - -deepmerge@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.1.0.tgz#a612626ce4803da410d77554bfd80361599c034d" - integrity sha512-/TnecbwXEdycfbsM2++O3eGiatEFHjjNciHEwJclM+T5Kd94qD1AP+2elP/Mq0L5b9VZJao5znR01Mz6eX8Seg== - -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -defined@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= - -defu@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/defu/-/defu-0.0.1.tgz#74dc4d64e401d7f95c6755fe98bc5cd688833a8f" - integrity sha512-Pz9yznbSzVTNA67lcfqVnktROx2BrrBBcmQqGrfe0zdiN5pl5GQogLA4uaP3U1pR1LHIZpEYTAh2sn+v4rH1dA== - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -des.js@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" - integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - -detect-indent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" - integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= - -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -dom-converter@~0.2: - version "0.2.0" - resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" - integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== - dependencies: - utila "~0.4" - -dom-serializer@0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" - integrity sha1-BzxpdUbOB4DOI75KKOKT5AvDDII= - dependencies: - domelementtype "~1.1.1" - entities "~1.1.1" - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -domelementtype@1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@~1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" - integrity sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs= - -domhandler@2.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.1.0.tgz#d2646f5e57f6c3bab11cf6cb05d3c0acf7412594" - integrity sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ= - dependencies: - domelementtype "1" - -domutils@1.1: - version "1.1.6" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.1.6.tgz#bddc3de099b9a2efacc51c623f28f416ecc57485" - integrity sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU= - dependencies: - domelementtype "1" - -domutils@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= - dependencies: - dom-serializer "0" - domelementtype "1" - -domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - -dot-prop@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" - integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== - dependencies: - is-obj "^1.0.0" - -duplexer@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" - integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= - -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -ejs@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0" - integrity sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ== - -electron-to-chromium@^1.3.103: - version "1.3.113" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.113.tgz#b1ccf619df7295aea17bc6951dc689632629e4a9" - integrity sha512-De+lPAxEcpxvqPTyZAXELNpRZXABRxf+uL/rSykstQhzj/B0l1150G/ExIIxKc16lI89Hgz81J0BHAcbTqK49g== - -elliptic@^6.0.0: - version "6.4.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" - integrity sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - -encodeurl@~1.0.1, encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" - integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== - dependencies: - once "^1.4.0" - -enhanced-resolve@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" - integrity sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24= - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.4.0" - object-assign "^4.0.1" - tapable "^0.2.7" - -enhanced-resolve@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" - integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.4.0" - tapable "^1.0.0" - -entities@~1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" - integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== - -errno@^0.1.3, errno@~0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== - dependencies: - prr "~1.0.1" - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -error-stack-parser@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.2.tgz#4ae8dbaa2bf90a8b450707b9149dcabca135520d" - integrity sha512-E1fPutRDdIj/hohG0UpT5mayXNCxXP9d+snxFsPU9X0XgccOumKraa3juDMwTUyi7+Bu5+mCGagjg4IYeNbOdw== - dependencies: - stackframe "^1.0.4" - -es-abstract@^1.12.0, es-abstract@^1.5.1: - version "1.13.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" - integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== - dependencies: - es-to-primitive "^1.2.0" - function-bind "^1.1.1" - has "^1.0.3" - is-callable "^1.1.4" - is-regex "^1.0.4" - object-keys "^1.0.12" - -es-to-primitive@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" - integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -eslint-friendly-formatter@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/eslint-friendly-formatter/-/eslint-friendly-formatter-4.0.1.tgz#27d504dc837f7caddbf201b2e84a4ee730ba3efa" - integrity sha1-J9UE3IN/fK3b8gGy6EpO5zC6Pvo= - dependencies: - chalk "^2.0.1" - coalescy "1.0.0" - extend "^3.0.0" - minimist "^1.2.0" - strip-ansi "^4.0.0" - text-table "^0.2.0" - -eslint-loader@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-2.1.2.tgz#453542a1230d6ffac90e4e7cb9cadba9d851be68" - integrity sha512-rA9XiXEOilLYPOIInvVH5S/hYfyTPyxag6DZhoQOduM+3TkghAEQ3VcFO8VnX4J4qg/UIBzp72aOf/xvYmpmsg== - dependencies: - loader-fs-cache "^1.0.0" - loader-utils "^1.0.2" - object-assign "^4.0.1" - object-hash "^1.1.4" - rimraf "^2.6.1" - -eslint-plugin-vue@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-5.1.0.tgz#d0d373334be8140d698ec4e1fb83f09faa48081b" - integrity sha512-C7avvbGLb9J1PyGiFolPcGR4ljUc+dKm5ZJdrUKXwXFxHHx4SqOmRI29AsFyW7PbCGcnOvIlaq7NJS6HDIak+g== - dependencies: - vue-eslint-parser "^4.0.2" - -eslint-scope@3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" - integrity sha1-PWPD7f2gLgbgGkUq2IyqzHzctug= - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-scope@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172" - integrity sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-utils@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512" - integrity sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q== - -eslint-visitor-keys@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" - integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ== - -eslint@^5.12.1: - version "5.13.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.13.0.tgz#ce71cc529c450eed9504530939aa97527861ede9" - integrity sha512-nqD5WQMisciZC5EHZowejLKQjWGuFS5c70fxqSKlnDME+oz9zmE8KTlX+lHSg+/5wsC/kf9Q9eMkC8qS3oM2fg== - dependencies: - "@babel/code-frame" "^7.0.0" - ajv "^6.5.3" - chalk "^2.1.0" - cross-spawn "^6.0.5" - debug "^4.0.1" - doctrine "^2.1.0" - eslint-scope "^4.0.0" - eslint-utils "^1.3.1" - eslint-visitor-keys "^1.0.0" - espree "^5.0.0" - esquery "^1.0.1" - esutils "^2.0.2" - file-entry-cache "^2.0.0" - functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^11.7.0" - ignore "^4.0.6" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - inquirer "^6.1.0" - js-yaml "^3.12.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.5" - minimatch "^3.0.4" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.2" - progress "^2.0.0" - regexpp "^2.0.1" - semver "^5.5.1" - strip-ansi "^4.0.0" - strip-json-comments "^2.0.1" - table "^5.0.2" - text-table "^0.2.0" - -esm@^3.1.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.4.tgz#0b728b5d6043061bf552197407bf2c630717812b" - integrity sha512-wOuWtQCkkwD1WKQN/k3RsyGSSN+AmiUzdKftn8vaC+uV9JesYmQlODJxgXaaRz0LaaFIlUxZaUu5NPiUAjKAAA== - -espree@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-4.1.0.tgz#728d5451e0fd156c04384a7ad89ed51ff54eb25f" - integrity sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w== - dependencies: - acorn "^6.0.2" - acorn-jsx "^5.0.0" - eslint-visitor-keys "^1.0.0" - -espree@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.0.tgz#fc7f984b62b36a0f543b13fb9cd7b9f4a7f5b65c" - integrity sha512-1MpUfwsdS9MMoN7ZXqAr9e9UKdVHDcvrJpyx7mm1WuQlx/ygErEQBzgi5Nh5qBHIoYweprhtMkTCb9GhcAIcsA== - dependencies: - acorn "^6.0.2" - acorn-jsx "^5.0.0" - eslint-visitor-keys "^1.0.0" - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" - integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== - dependencies: - estraverse "^4.0.0" - -esrecurse@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== - dependencies: - estraverse "^4.1.0" - -estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= - -esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" - integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= - -etag@^1.8.1, etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -eventemitter3@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163" - integrity sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA== - -events@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" - integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA== - -eventsource-polyfill@^0.9.6: - version "0.9.6" - resolved "https://registry.yarnpkg.com/eventsource-polyfill/-/eventsource-polyfill-0.9.6.tgz#10e0d187f111b167f28fdab918843ce7d818f13c" - integrity sha1-EODRh/ERsWfyj9q5GIQ859gY8Tw= - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - 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" - -express@^4.16.3: - version "4.16.4" - resolved "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e" - integrity sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg== - dependencies: - accepts "~1.3.5" - array-flatten "1.1.1" - body-parser "1.18.3" - content-disposition "0.5.2" - content-type "~1.0.4" - cookie "0.3.1" - 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.1" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.2" - path-to-regexp "0.1.7" - proxy-addr "~2.0.4" - qs "6.5.2" - range-parser "~1.2.0" - safe-buffer "5.1.2" - send "0.16.2" - serve-static "1.13.2" - setprototypeof "1.1.0" - statuses "~1.4.0" - type-is "~1.6.16" - utils-merge "1.0.1" - vary "~1.1.2" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -external-editor@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" - integrity sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - 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" - -extract-css-chunks-webpack-plugin@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/extract-css-chunks-webpack-plugin/-/extract-css-chunks-webpack-plugin-3.3.2.tgz#c99ba78be7c670e1bbd1dcffe3e272ab5e88026d" - integrity sha512-7XNEW3AiFiWqOCxJyjNDMqk+PMwqSQhrAr/NobhlI1fxb0a4AqlgCn3+dxlcqTlD+MhRz0jI4u3bXmw3jyoBVQ== - dependencies: - loader-utils "^1.1.0" - lodash "^4.17.11" - normalize-url "^4.1.0" - schema-utils "^1.0.0" - webpack-sources "^1.1.0" - -fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= - -fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= - -fast-levenshtein@~2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fastparse@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" - integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== - -figgy-pudding@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" - integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== - -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= - dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" - integrity sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E= - dependencies: - flat-cache "^1.2.1" - object-assign "^4.0.1" - -file-loader@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-3.0.1.tgz#f8e0ba0b599918b51adfe45d66d1e771ad560faa" - integrity sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw== - dependencies: - loader-utils "^1.0.2" - schema-utils "^1.0.0" - -filesize@^3.6.1: - version "3.6.1" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" - integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -finalhandler@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" - integrity sha1-zgtoVbRYU+eRsvzGgARtiCU91/U= - dependencies: - debug "2.6.9" - encodeurl "~1.0.1" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.2" - statuses "~1.3.1" - unpipe "~1.0.0" - -finalhandler@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" - integrity sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.2" - statuses "~1.4.0" - unpipe "~1.0.0" - -find-cache-dir@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" - integrity sha1-yN765XyKUqinhPnjHFfHQumToLk= - dependencies: - commondir "^1.0.1" - mkdirp "^0.5.1" - pkg-dir "^1.0.0" - -find-cache-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.0.0.tgz#4c1faed59f45184530fb9d7fa123a4d04a98472d" - integrity sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA== - dependencies: - commondir "^1.0.1" - make-dir "^1.0.0" - pkg-dir "^3.0.0" - -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -flat-cache@^1.2.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" - integrity sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg== - dependencies: - circular-json "^0.3.1" - graceful-fs "^4.1.2" - rimraf "~2.6.2" - write "^0.2.1" - -flatten@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" - integrity sha1-2uRqnXj74lKSJYzB54CkHZXAN4I= - -flush-write-stream@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.0.tgz#2e89a8bd5eee42f8ec97e43aae81e3d5099c2ddc" - integrity sha512-6MHED/cmsyux1G4/Cek2Z776y9t7WCNd3h2h/HW91vFeU7pzMhA8XvAlDhHcanG5IWuIh/xcC7JASY4WQpG6xg== - dependencies: - inherits "^2.0.3" - readable-stream "^3.1.1" - -follow-redirects@^1.0.0, follow-redirects@^1.3.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.6.1.tgz#514973c44b5757368bad8bddfe52f81f015c94cb" - integrity sha512-t2JCjbzxQpWvbhts3l6SH1DKzSrx8a+SsaVf4h6bG4kOXUuPYS/kg2Lr4gQSb7eemaHqJkOThF1BGyjlUkO1GQ== - dependencies: - debug "=3.1.0" - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -form-data@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -formidable@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.1.tgz#70fb7ca0290ee6ff961090415f4b3df3d2082659" - integrity sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg== - -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2, fresh@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -from2@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-extra@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" - integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" - integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-minipass@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" - integrity sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ== - dependencies: - minipass "^2.2.1" - -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.7.tgz#4851b664a3783e52003b3c66eb0eee1074933aa4" - integrity sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw== - dependencies: - nan "^2.9.2" - node-pre-gyp "^0.10.0" - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -gather-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/gather-stream/-/gather-stream-1.0.0.tgz#b33994af457a8115700d410f317733cbe7a0904b" - integrity sha1-szmUr0V6gRVwDUEPMXczy+egkEs= - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -get-caller-file@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" - integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== - -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= - -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -glob-all@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-all/-/glob-all-3.1.0.tgz#8913ddfb5ee1ac7812656241b03d5217c64b02ab" - integrity sha1-iRPd+17hrHgSZWJBsD1SF8ZLAqs= - dependencies: - glob "^7.0.5" - yargs "~1.2.6" - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob@^7.0.5, glob@^7.1.2, glob@^7.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" - integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== - dependencies: - 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" - -globals@^11.1.0, globals@^11.7.0: - version "11.10.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.10.0.tgz#1e09776dffda5e01816b3bb4077c8b59c24eaa50" - integrity sha512-0GZF1RiPKU97IHUO5TORo9w1PwrH/NBPl+fS7oMLdaTRiYmYbwK4NWoZWrAdd0/abG9R2BU+OiwyQpTpE6pdfQ== - -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6: - version "4.1.15" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" - integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== - -gzip-size@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.0.0.tgz#a55ecd99222f4c48fd8c01c625ce3b349d0a0e80" - integrity sha512-5iI7omclyqrnWw4XbXAmGhPsABkSIDQonv2K0h61lybgofWa6iZyvrI3r2zsJH4P8Nb64fFVzlvfhs0g7BBxAA== - dependencies: - duplexer "^0.1.1" - pify "^3.0.0" - -hard-source-webpack-plugin@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/hard-source-webpack-plugin/-/hard-source-webpack-plugin-0.13.1.tgz#a99071e25b232f1438a5bc3c99f10a3869e4428e" - integrity sha512-r9zf5Wq7IqJHdVAQsZ4OP+dcUSvoHqDMxJlIzaE2J0TZWn3UjMMrHqwDHR8Jr/pzPfG7XxSe36E7Y8QGNdtuAw== - dependencies: - chalk "^2.4.1" - find-cache-dir "^2.0.0" - graceful-fs "^4.1.11" - lodash "^4.15.0" - mkdirp "^0.5.1" - node-object-hash "^1.2.0" - parse-json "^4.0.0" - pkg-dir "^3.0.0" - rimraf "^2.6.2" - semver "^5.6.0" - tapable "^1.0.0-beta.5" - webpack-sources "^1.0.1" - write-json-file "^2.3.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" - integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.0, has@^1.0.1, has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" - integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -hash-sum@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04" - integrity sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ= - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -he@1.2.x, he@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hoopy@^0.1.2: - version "0.1.4" - resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" - integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== - -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= - -html-comment-regex@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" - integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== - -html-entities@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" - integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= - -html-minifier@^3.2.3, html-minifier@^3.5.21: - version "3.5.21" - resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" - integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== - dependencies: - camel-case "3.0.x" - clean-css "4.2.x" - commander "2.17.x" - he "1.2.x" - param-case "2.1.x" - relateurl "0.2.x" - uglify-js "3.4.x" - -html-tags@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-2.0.0.tgz#10b30a386085f43cede353cc8fa7cb0deeea668b" - integrity sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos= - -html-webpack-plugin@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz#b01abbd723acaaa7b37b6af4492ebda03d9dd37b" - integrity sha1-sBq71yOsqqeze2r0SS69oD2d03s= - dependencies: - html-minifier "^3.2.3" - loader-utils "^0.2.16" - lodash "^4.17.3" - pretty-error "^2.0.2" - tapable "^1.0.0" - toposort "^1.0.0" - util.promisify "1.0.0" - -htmlparser2@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.3.0.tgz#cc70d05a59f6542e43f0e685c982e14c924a9efe" - integrity sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4= - dependencies: - domelementtype "1" - domhandler "2.1" - domutils "1.1" - readable-stream "1.0" - -http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-proxy-middleware@^0.19.0: - version "0.19.1" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" - integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== - dependencies: - http-proxy "^1.17.0" - is-glob "^4.0.0" - lodash "^4.17.11" - micromatch "^3.1.10" - -http-proxy@^1.17.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a" - integrity sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g== - dependencies: - eventemitter3 "^3.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - -iconv-lite@0.4.23: - version "0.4.23" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" - integrity sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -iconv-lite@^0.4.24, iconv-lite@^0.4.4: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -icss-replace-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" - integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= - -icss-utils@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.0.0.tgz#d52cf4bcdcfa1c45c2dbefb4ffdf6b00ef608098" - integrity sha512-bA/xGiwWM17qjllIs9X/y0EjsB7e0AV08F3OL8UPsoNkNRibIuu8f1eKTnQ8QO1DteKKTxTUAn+IEWUToIwGOA== - dependencies: - postcss "^7.0.5" - -ieee754@^1.1.4: - version "1.1.12" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" - integrity sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA== - -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= - -ignore-walk@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" - integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ== - dependencies: - minimatch "^3.0.4" - -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= - dependencies: - import-from "^2.1.0" - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-fresh@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390" - integrity sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha1-M1238qev/VOqpHHUuAId7ja387E= - dependencies: - resolve-from "^3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - -ini@~1.3.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== - -inquirer@^6.1.0: - version "6.2.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.2.tgz#46941176f65c9eb20804627149b743a218f25406" - integrity sha512-Z2rREiXA6cHRR9KBOarR3WuLlFzlIfAEIiB45ll5SSadMg7WqOh1MKEjjndfuH5ewXdixWCxqnVfGOQzPeiztA== - dependencies: - ansi-escapes "^3.2.0" - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^2.0.0" - lodash "^4.17.11" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.4.0" - string-width "^2.1.0" - strip-ansi "^5.0.0" - through "^2.3.6" - -invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -invert-kv@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" - integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== - -ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= - -ipaddr.js@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e" - integrity sha1-6qM9bd16zo9/b+DJygRA5wZzix4= - -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-callable@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" - integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== - -is-ci@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" - integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== - dependencies: - ci-info "^1.5.0" - -is-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= - dependencies: - 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-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" - integrity sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A= - dependencies: - is-extglob "^2.1.1" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - -is-plain-obj@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - -is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-promise@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" - integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= - -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= - dependencies: - has "^1.0.1" - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - -is-retry-allowed@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" - integrity sha1-EaBgVotnM5REAz0BJaYaINVk+zQ= - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-svg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" - integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== - dependencies: - html-comment-regex "^1.1.0" - -is-symbol@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" - integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== - dependencies: - has-symbols "^1.0.0" - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -js-base64@^2.1.9: - version "2.5.1" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.1.tgz#1efa39ef2c5f7980bb1784ade4a8af2de3291121" - integrity sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw== - -js-levenshtein@^1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" - integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.12.0, js-yaml@^3.9.0: - version "3.12.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.1.tgz#295c8632a18a23e054cf5c9d3cecafe678167600" - integrity sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= - -json5@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -json5@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" - integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== - dependencies: - minimist "^1.2.0" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== - -last-call-webpack-plugin@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" - integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== - dependencies: - lodash "^4.17.5" - webpack-sources "^1.1.0" - -launch-editor-middleware@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/launch-editor-middleware/-/launch-editor-middleware-2.2.1.tgz#e14b07e6c7154b0a4b86a0fd345784e45804c157" - integrity sha512-s0UO2/gEGiCgei3/2UN3SMuUj1phjQN8lcpnvgLSz26fAzNWPQ6Nf/kF5IFClnfU2ehp6LrmKdMU/beveO+2jg== - dependencies: - launch-editor "^2.2.1" - -launch-editor@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.2.1.tgz#871b5a3ee39d6680fcc26d37930b6eeda89db0ca" - integrity sha512-On+V7K2uZK6wK7x691ycSUbLD/FyKKelArkbaAMSSJU8JmqmhwN2+mnJDNINuJWSrh2L0kDk+ZQtbC/gOWUwLw== - dependencies: - chalk "^2.3.0" - shell-quote "^1.6.1" - -lcid@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" - integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== - dependencies: - invert-kv "^2.0.0" - -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -li@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/li/-/li-1.3.0.tgz#22c59bcaefaa9a8ef359cf759784e4bf106aea1b" - integrity sha1-IsWbyu+qmo7zWc91l4TkvxBq6hs= - -loader-fs-cache@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz#56e0bf08bd9708b26a765b68509840c8dec9fdbc" - integrity sha1-VuC/CL2XCLJqdltoUJhAyN7J/bw= - dependencies: - find-cache-dir "^0.1.1" - mkdirp "0.5.1" - -loader-runner@^2.3.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -loader-utils@^0.2.16: - version "0.2.17" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" - integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - object-assign "^4.0.1" - -loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.1: - version "1.2.3" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" - integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== - dependencies: - big.js "^5.2.2" - emojis-list "^2.0.0" - json5 "^1.0.1" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -lodash._reinterpolate@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= - -lodash.isplainobject@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= - -lodash.kebabcase@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" - integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY= - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= - -lodash.template@^4.2.4, lodash.template@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0" - integrity sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A= - dependencies: - lodash._reinterpolate "~3.0.0" - lodash.templatesettings "^4.0.0" - -lodash.templatesettings@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316" - integrity sha1-K01OlbpEDZFf8IvImeRVNmZxMxY= - dependencies: - lodash._reinterpolate "~3.0.0" - -lodash.toarray@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" - integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE= - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= - -lodash.uniqueid@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.uniqueid/-/lodash.uniqueid-4.0.1.tgz#3268f26a7c88e4f4b1758d679271814e31fa5b26" - integrity sha1-MmjyanyI5PSxdY1nknGBTjH6WyY= - -lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.3, lodash@^4.17.5: - version "4.17.11" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" - integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== - -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lower-case@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" - integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= - -lru-cache@^4.0.1, lru-cache@^4.1.2: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -make-dir@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== - dependencies: - pify "^3.0.0" - -map-age-cleaner@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== - dependencies: - p-defer "^1.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -mdn-data@~1.1.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01" - integrity sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA== - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -mem@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.1.0.tgz#aeb9be2d21f47e78af29e4ac5978e8afa2ca5b8a" - integrity sha512-I5u6Q1x7wxO0kdOpYBB28xueHADYps5uty/zg936CiG8NTe5sJL8EjrCuLneuDW3PlMdZBGDIn8BirEVdovZvg== - dependencies: - map-age-cleaner "^0.1.1" - mimic-fn "^1.0.0" - p-is-promise "^2.0.0" - -memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -merge-source-map@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" - integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== - dependencies: - source-map "^0.6.1" - -methods@^1.1.1, methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - 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@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -"mime-db@>= 1.36.0 < 2": - version "1.38.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.38.0.tgz#1a2aab16da9eb167b49c6e4df2d9c68d63d8e2ad" - integrity sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg== - -mime-db@~1.37.0: - version "1.37.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8" - integrity sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg== - -mime-types@^2.1.12, mime-types@~2.1.18: - version "2.1.21" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz#28995aa1ecb770742fe6ae7e58f9181c744b3f96" - integrity sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg== - dependencies: - mime-db "~1.37.0" - -mime@1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" - integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== - -mime@^2.0.3, mime@^2.3.1, mime@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.0.tgz#e051fd881358585f3279df333fe694da0bcffdd6" - integrity sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w== - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= - -minimist@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.1.0.tgz#99df657a52574c21c9057497df742790b2b4c0de" - integrity sha1-md9lelJXTCHJBXSX33QnkLK0wN4= - -minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= - -minipass@^2.2.1, minipass@^2.3.4: - version "2.3.5" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" - integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minizlib@^1.1.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" - integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA== - dependencies: - minipass "^2.2.1" - -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - -mixin-deep@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" - integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= - dependencies: - minimist "0.0.8" - -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -mustache@^2.3.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/mustache/-/mustache-2.3.2.tgz#a6d4d9c3f91d13359ab889a812954f9230a3d0c5" - integrity sha512-KpMNwdQsYz3O/SBS1qJ/o3sqUJ5wSb8gb0pul8CO0S56b9Y2ALm8zCfsjPXsqGFfoNBkDwZuZIAjhsZI03gYVQ== - -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= - -nan@^2.9.2: - version "2.12.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.12.1.tgz#7b1aa193e9aa86057e3c7bbd0ac448e770925552" - integrity sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - 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" - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - -needle@^2.2.1: - version "2.2.4" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e" - integrity sha512-HyoqEb4wr/rsoaIDfTH2aVL9nWtQqba2/HvMv+++m8u0dz808MaagKILxtfeSN7QU7nvbQ79zk3vYOJp9zsNEA== - dependencies: - debug "^2.1.2" - iconv-lite "^0.4.4" - sax "^1.2.4" - -negotiator@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" - integrity sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk= - -neo-async@^2.5.0, neo-async@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" - integrity sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA== - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -no-case@^2.2.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" - integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== - dependencies: - lower-case "^1.1.1" - -node-emoji@^1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.8.1.tgz#6eec6bfb07421e2148c75c6bba72421f8530a826" - integrity sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg== - dependencies: - lodash.toarray "^4.4.0" - -node-fetch@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.3.0.tgz#1a1d940bbfb916a1d3e0219f037e89e71f8c5fa5" - integrity sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA== - -node-libs-browser@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.0.tgz#c72f60d9d46de08a940dedbb25f3ffa2f9bbaa77" - integrity sha512-5MQunG/oyOaBdttrL40dA7bUfPORLRWMUJLQtMg7nluxUvk5XwnLdL9twQHFAjRx/y7mIMkLKT9++qPbbk6BZA== - dependencies: - 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.0" - 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 "0.0.4" - -node-object-hash@^1.2.0: - version "1.4.2" - resolved "https://registry.yarnpkg.com/node-object-hash/-/node-object-hash-1.4.2.tgz#385833d85b229902b75826224f6077be969a9e94" - integrity sha512-UdS4swXs85fCGWWf6t6DMGgpN/vnlKeSGEQ7hJcrs7PBFoxoKLmibc3QRb7fwiYsjdL7PX8iI/TMSlZ90dgHhQ== - -node-pre-gyp@^0.10.0: - version "0.10.3" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" - integrity sha512-d1xFs+C/IPS8Id0qPTZ4bUT8wWryfR/OzzAFxweG+uLN85oPzyo2Iw6bVlLQ/JOdgNonXLCoRyqDzDWq4iw72A== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - -node-releases@^1.1.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.7.tgz#b09a10394d0ed8f7778f72bb861dde68b146303b" - integrity sha512-bKdrwaqJUPHqlCzDD7so/R+Nk0jGv9a11ZhLrD9f6i947qGLrGAhU3OxRENa19QQmwzGy/g6zCDEuLGDO8HPvA== - dependencies: - semver "^5.3.0" - -nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= - dependencies: - abbrev "1" - osenv "^0.1.4" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= - -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - -normalize-url@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.1.0.tgz#307e74c87473efa81969ad1b4bb91f1990178904" - integrity sha512-X781mkWeK6PDMAZJfGn/wnwil4dV6pIdF9euiNqtA89uJvZuNDJO2YyJxiwpPhTQcF5pYUU1v+kcOxzYV6rZlA== - -npm-bundled@^1.0.1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" - integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== - -npm-packlist@^1.1.6: - version "1.3.0" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.3.0.tgz#7f01e8e44408341379ca98cfd756e7b29bd2626c" - integrity sha512-qPBc6CnxEzpOcc4bjoIBJbYdy0D/LFFPUdxvfwor4/w3vxeE0h6TiOVurCEPpQ6trjN77u/ShyfeJGsbAfB3dA== - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -npmlog@^4.0.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - -nth-check@^1.0.2, nth-check@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - -nuxt-fontawesome@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/nuxt-fontawesome/-/nuxt-fontawesome-0.4.0.tgz#e1ea0cdda9ec6785739a86e9e3d42f62a8c10443" - integrity sha512-4oHIot/WLUBFM7o944EQks7WmntD/YsLxZ+g9mJjY9pHw1FJZBaD7Bd+cDsXvl3h/0/f87QwIXf/AA+vOIY0Ag== - dependencies: - "@fortawesome/fontawesome-svg-core" "^1.2.12" - "@fortawesome/vue-fontawesome" "^0.1.4" - -nuxt-purgecss@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/nuxt-purgecss/-/nuxt-purgecss-0.2.1.tgz#5cabb515beaff96cfb833b3ce13caecec953daca" - integrity sha512-d2PXW9jvGLr3aF7BUf6s28oc8XpfS+aIord2DhwsAWoEOZh8f7c95+/491zrj1hEwv1aUlHSsXMK9UKCPrcdtA== - dependencies: - "@fullhuman/postcss-purgecss" "^1.1.0" - consola "^1.4.5" - glob-all "^3.1.0" - purgecss "^1.1.0" - purgecss-webpack-plugin "^1.4.0" - -nuxt@^2.3.4: - version "2.4.3" - resolved "https://registry.yarnpkg.com/nuxt/-/nuxt-2.4.3.tgz#1584fbbaed2bfb4839da2298c00bdcac2d71dcdd" - integrity sha512-U9g4yM0C8xwKymo9Z+91XOunEBTROrVrk4wvzBKggPVLjsszvsaM7tkEN6rKAVFS/g7jE+XHA4dkjyQENQaKXA== - dependencies: - "@nuxt/builder" "2.4.3" - "@nuxt/cli" "2.4.3" - "@nuxt/core" "2.4.3" - "@nuxt/generator" "2.4.3" - "@nuxt/opencollective" "^0.2.1" - "@nuxt/webpack" "2.4.3" - -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-hash@^1.1.4: - version "1.3.1" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" - integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== - -object-keys@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" - integrity sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.getownpropertydescriptors@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" - integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= - dependencies: - define-properties "^1.1.2" - es-abstract "^1.5.1" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -object.values@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" - integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.12.0" - function-bind "^1.1.1" - has "^1.0.3" - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -on-headers@^1.0.1, on-headers@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" - integrity sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c= - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= - dependencies: - mimic-fn "^1.0.0" - -opener@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed" - integrity sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA== - -optimize-css-assets-webpack-plugin@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.1.tgz#9eb500711d35165b45e7fd60ba2df40cb3eb9159" - integrity sha512-Rqm6sSjWtx9FchdP0uzTQDc7GXDKnwVEGoSxjezPkzMewx7gEWE9IMUYKmigTRC4U3RaNSwYVnUDLuIdtTpm0A== - dependencies: - cssnano "^4.1.0" - last-call-webpack-plugin "^3.0.0" - -optionator@^0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.4" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - wordwrap "~1.0.0" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-locale@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" - integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== - dependencies: - execa "^1.0.0" - lcid "^2.0.0" - mem "^4.0.0" - -os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-is-promise@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.0.0.tgz#7554e3d572109a87e1f3f53f6a7d85d1b194f4c5" - integrity sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg== - -p-limit@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.1.0.tgz#1d5a0d20fb12707c758a655f6bbc4386b5930d68" - integrity sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g== - dependencies: - p-try "^2.0.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-try@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" - integrity sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ== - -pako@~1.0.5: - version "1.0.8" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.8.tgz#6844890aab9c635af868ad5fecc62e8acbba3ea4" - integrity sha512-6i0HVbUfcKaTv+EG8ZTr75az7GFXcLYk9UyLEg7Notv/Ma+z/UG3TCoz6GiNeOrn1E/e63I0X/Hpw18jHOTUnA== - -parallel-transform@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" - integrity sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY= - dependencies: - cyclist "~0.2.2" - inherits "^2.0.3" - readable-stream "^2.1.5" - -param-case@2.1.x: - version "2.1.1" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" - integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= - dependencies: - no-case "^2.2.0" - -parent-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.0.tgz#df250bdc5391f4a085fb589dad761f5ad6b865b5" - integrity sha512-8Mf5juOMmiE4FcmzYc4IaiS9L3+9paz2KOiXzkRviCP6aDmN49Hz6EMWz0lGNp9pX80GvvAuLADtyGfW/Em3TA== - dependencies: - callsites "^3.0.0" - -parse-asn1@^5.0.0: - version "5.1.3" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.3.tgz#1600c6cc0727365d68b97f3aa78939e735a75204" - integrity sha512-VrPoetlz7B/FqjBLD2f5wBVZvsZVLnRUrxVLfRYhGXCODa/NWE4p3Wp+6+aV3ZPL3KM7/OZmxDIwwijD7yuucg== - dependencies: - asn1.js "^4.0.0" - browserify-aes "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-link-header@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parse-link-header/-/parse-link-header-1.0.1.tgz#bedfe0d2118aeb84be75e7b025419ec8a61140a7" - integrity sha1-vt/g0hGK64S+deewJUGeyKYRQKc= - dependencies: - xtend "~4.0.1" - -parseurl@~1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" - integrity sha1-/CidTtiZMRlGDBViUyYs3I3mW/M= - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" - integrity sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo= - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= - dependencies: - pinkie-promise "^2.0.0" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - -pbkdf2@^3.0.3: - version "3.0.17" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" - integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -perfectionist@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/perfectionist/-/perfectionist-2.4.0.tgz#c147ad3714e126467f1764129ee72df861d47ea0" - integrity sha1-wUetNxThJkZ/F2QSnuct+GHUfqA= - dependencies: - comment-regex "^1.0.0" - defined "^1.0.0" - minimist "^1.2.0" - postcss "^5.0.8" - postcss-scss "^0.3.0" - postcss-value-parser "^3.3.0" - read-file-stdin "^0.2.0" - string.prototype.repeat "^0.2.0" - vendors "^1.0.0" - write-file-stdout "0.0.2" - -pify@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= - -pkg-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" - integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q= - dependencies: - find-up "^1.0.0" - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -postcss-attribute-case-insensitive@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.1.tgz#b2a721a0d279c2f9103a36331c88981526428cc7" - integrity sha512-L2YKB3vF4PetdTIthQVeT+7YiSzMoNMLLYxPXXppOOP7NoazEAy45sh2LvJ8leCQjfBcfkYQs8TtCcQjeZTp8A== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0" - -postcss-calc@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436" - integrity sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ== - dependencies: - css-unit-converter "^1.1.1" - postcss "^7.0.5" - postcss-selector-parser "^5.0.0-rc.4" - postcss-value-parser "^3.3.1" - -postcss-color-functional-notation@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz#5efd37a88fbabeb00a2966d1e53d98ced93f74e0" - integrity sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-color-gray@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz#532a31eb909f8da898ceffe296fdc1f864be8547" - integrity sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.5" - postcss-values-parser "^2.0.0" - -postcss-color-hex-alpha@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.2.tgz#e9b1886bb038daed33f6394168c210b40bb4fdb6" - integrity sha512-8bIOzQMGdZVifoBQUJdw+yIY00omBd2EwkJXepQo9cjp1UOHHHoeRDeSzTP6vakEpaRc6GAIOfvcQR7jBYaG5Q== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-color-mod-function@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz#816ba145ac11cc3cb6baa905a75a49f903e4d31d" - integrity sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-color-rebeccapurple@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz#c7a89be872bb74e45b1e3022bfe5748823e6de77" - integrity sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-colormin@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.2.tgz#93cd1fa11280008696887db1a528048b18e7ed99" - integrity sha512-1QJc2coIehnVFsz0otges8kQLsryi4lo19WD+U5xCWvXd0uw/Z+KKYnbiNDCnO9GP+PvErPHCG0jNvWTngk9Rw== - dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-custom-media@^7.0.7: - version "7.0.7" - resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.7.tgz#bbc698ed3089ded61aad0f5bfb1fb48bf6969e73" - integrity sha512-bWPCdZKdH60wKOTG4HKEgxWnZVjAIVNOJDvi3lkuTa90xo/K0YHa2ZnlKLC5e2qF8qCcMQXt0yzQITBp8d0OFA== - dependencies: - postcss "^7.0.5" - -postcss-custom-properties@^8.0.9: - version "8.0.9" - resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-8.0.9.tgz#8943870528a6eae4c8e8d285b6ccc9fd1f97e69c" - integrity sha512-/Lbn5GP2JkKhgUO2elMs4NnbUJcvHX4AaF5nuJDaNkd2chYW1KA5qtOGGgdkBEWcXtKSQfHXzT7C6grEVyb13w== - dependencies: - postcss "^7.0.5" - postcss-values-parser "^2.0.0" - -postcss-custom-selectors@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz#64858c6eb2ecff2fb41d0b28c9dd7b3db4de7fba" - integrity sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-dir-pseudo-class@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz#6e3a4177d0edb3abcc85fdb6fbb1c26dabaeaba2" - integrity sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-discard-comments@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.1.tgz#30697735b0c476852a7a11050eb84387a67ef55d" - integrity sha512-Ay+rZu1Sz6g8IdzRjUgG2NafSNpp2MSMOQUb+9kkzzzP+kh07fP0yNbhtFejURnyVXSX3FYy2nVNW1QTnNjgBQ== - dependencies: - postcss "^7.0.0" - -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== - dependencies: - postcss "^7.0.0" - -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== - dependencies: - postcss "^7.0.0" - -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== - dependencies: - postcss "^7.0.0" - -postcss-double-position-gradients@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz#fc927d52fddc896cb3a2812ebc5df147e110522e" - integrity sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA== - dependencies: - postcss "^7.0.5" - postcss-values-parser "^2.0.0" - -postcss-env-function@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-2.0.2.tgz#0f3e3d3c57f094a92c2baf4b6241f0b0da5365d7" - integrity sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-focus-visible@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz#477d107113ade6024b14128317ade2bd1e17046e" - integrity sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g== - dependencies: - postcss "^7.0.2" - -postcss-focus-within@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz#763b8788596cee9b874c999201cdde80659ef680" - integrity sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w== - dependencies: - postcss "^7.0.2" - -postcss-font-variant@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-4.0.0.tgz#71dd3c6c10a0d846c5eda07803439617bbbabacc" - integrity sha512-M8BFYKOvCrI2aITzDad7kWuXXTm0YhGdP9Q8HanmN4EF1Hmcgs1KK5rSHylt/lUJe8yLxiSwWAHdScoEiIxztg== - dependencies: - postcss "^7.0.2" - -postcss-functions@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-functions/-/postcss-functions-3.0.0.tgz#0e94d01444700a481de20de4d55fb2640564250e" - integrity sha1-DpTQFERwCkgd4g3k1V+yZAVkJQ4= - dependencies: - glob "^7.1.2" - object-assign "^4.1.1" - postcss "^6.0.9" - postcss-value-parser "^3.3.0" - -postcss-gap-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz#431c192ab3ed96a3c3d09f2ff615960f902c1715" - integrity sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg== - dependencies: - postcss "^7.0.2" - -postcss-image-set-function@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz#28920a2f29945bed4c3198d7df6496d410d3f288" - integrity sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-import-resolver@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-import-resolver/-/postcss-import-resolver-1.1.0.tgz#08a1a9811da625d28317abc31565a8408ff28cd2" - integrity sha512-GPIrMNh1ySSdA+BhTyWEv247KIW7WmPRWzvVMgGYR5YBWXAkj+iCdETmdyVQxakQRSLVTwfUibrOejxegka/OQ== - dependencies: - enhanced-resolve "^3.4.1" - -postcss-import@^12.0.1: - version "12.0.1" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-12.0.1.tgz#cf8c7ab0b5ccab5649024536e565f841928b7153" - integrity sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw== - dependencies: - postcss "^7.0.1" - postcss-value-parser "^3.2.3" - read-cache "^1.0.0" - resolve "^1.1.7" - -postcss-initial@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.0.tgz#1772512faf11421b791fb2ca6879df5f68aa0517" - integrity sha512-WzrqZ5nG9R9fUtrA+we92R4jhVvEB32IIRTzfIG/PLL8UV4CvbF1ugTEHEFX6vWxl41Xt5RTCJPEZkuWzrOM+Q== - dependencies: - lodash.template "^4.2.4" - postcss "^7.0.2" - -postcss-js@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-2.0.0.tgz#f75b70470009eb37f998ee9bb516a2899c19ef8d" - integrity sha512-9kAApW9G5kN8FkQ0ZdvSmbgbHIRrKmXtde2ZWYbwrW51gfEWfGsLlUu57mTpioPrmQlQFOgEvaeGYp+poqlX0A== - dependencies: - camelcase-css "^2.0.0" - postcss "^7.0.0" - -postcss-lab-function@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz#bb51a6856cd12289ab4ae20db1e3821ef13d7d2e" - integrity sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-load-config@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.0.0.tgz#f1312ddbf5912cd747177083c5ef7a19d62ee484" - integrity sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ== - dependencies: - cosmiconfig "^4.0.0" - import-cwd "^2.0.0" - -postcss-loader@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" - integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== - dependencies: - loader-utils "^1.1.0" - postcss "^7.0.0" - postcss-load-config "^2.0.0" - schema-utils "^1.0.0" - -postcss-logical@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-3.0.0.tgz#2495d0f8b82e9f262725f75f9401b34e7b45d5b5" - integrity sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA== - dependencies: - postcss "^7.0.2" - -postcss-media-minmax@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz#b75bb6cbc217c8ac49433e12f22048814a4f5ed5" - integrity sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw== - dependencies: - postcss "^7.0.2" - -postcss-merge-longhand@^4.0.10: - version "4.0.10" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.10.tgz#c4d63ab57bdc054ab4067ab075d488c8c2978380" - integrity sha512-hME10s6CSjm9nlVIcO1ukR7Jr5RisTaaC1y83jWCivpuBtPohA3pZE7cGTIVSYjXvLnXozHTiVOkG4dnnl756g== - dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" - -postcss-merge-rules@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.2.tgz#2be44401bf19856f27f32b8b12c0df5af1b88e74" - integrity sha512-UiuXwCCJtQy9tAIxsnurfF0mrNHKc4NnNx6NxqmzNNjXpQwLSukUxELHTRF0Rg1pAmcoKLih8PwvZbiordchag== - dependencies: - 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" - -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-gradients@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.1.tgz#6da95c6e92a809f956bb76bf0c04494953e1a7dd" - integrity sha512-pySEW3E6Ly5mHm18rekbWiAjVi/Wj8KKt2vwSfVFAWdW6wOIekgqxKxLU7vJfb107o3FDNPkaYFCxGAJBFyogA== - dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-params@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.1.tgz#5b2e2d0264dd645ef5d68f8fec0d4c38c1cf93d2" - integrity sha512-h4W0FEMEzBLxpxIVelRtMheskOKKp52ND6rJv+nBS33G1twu2tCyurYj/YtgU76+UDCvWeNs0hs8HFAWE2OUFg== - dependencies: - 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" - -postcss-minify-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.1.tgz#a891c197977cc37abf60b3ea06b84248b1c1e9cd" - integrity sha512-8+plQkomve3G+CodLCgbhAKrb5lekAnLYuL1d7Nz+/7RANpBEVdgBkPNwljfSKvZ9xkkZTZITd04KP+zeJTJqg== - dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -postcss-modules-extract-imports@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" - integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== - dependencies: - postcss "^7.0.5" - -postcss-modules-local-by-default@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.5.tgz#7f387f68f5555598068e4d6d1ea0b7d6fa984272" - integrity sha512-iFgxlCAVLno5wIJq+4hyuOmc4VjZEZxzpdeuZcBytLNWEK5Bx2oRF9PPcAz5TALbaFvrZm8sJYtJ3hV+tMSEIg== - dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^7.0.6" - postcss-value-parser "^3.3.1" - -postcss-modules-scope@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.0.1.tgz#2c0f2394cde4cd09147db054c68917e38f6d43a4" - integrity sha512-7+6k9c3/AuZ5c596LJx9n923A/j3nF3ormewYBF1RrIQvjvjXe1xE8V8A1KFyFwXbvnshT6FBZFX0k/F1igneg== - dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^7.0.6" - -postcss-modules-values@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz#479b46dc0c5ca3dc7fa5270851836b9ec7152f64" - integrity sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w== - dependencies: - icss-replace-symbols "^1.1.0" - postcss "^7.0.6" - -postcss-nested@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-4.1.1.tgz#2074e6641583bf7151d951908d68fa95039fe340" - integrity sha512-3+V8+g+i9zUQ/AADNtBj3DVVvSOhRCV7W8Kzn9n4ViWJtSQrSdtIJnxZaupfdTrnhCkY86sAsuKVxBCuyfJDeA== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^5.0.0-rc.4" - -postcss-nesting@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-7.0.0.tgz#6e26a770a0c8fcba33782a6b6f350845e1a448f6" - integrity sha512-WSsbVd5Ampi3Y0nk/SKr5+K34n52PqMqEfswu6RtU4r7wA8vSD+gM8/D9qq4aJkHImwn1+9iEFTbjoWsQeqtaQ== - dependencies: - postcss "^7.0.2" - -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== - dependencies: - postcss "^7.0.0" - -postcss-normalize-display-values@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.1.tgz#d9a83d47c716e8a980f22f632c8b0458cfb48a4c" - integrity sha512-R5mC4vaDdvsrku96yXP7zak+O3Mm9Y8IslUobk7IMP+u/g+lXvcN4jngmHY5zeJnrQvE13dfAg5ViU05ZFDwdg== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-positions@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.1.tgz#ee2d4b67818c961964c6be09d179894b94fd6ba1" - integrity sha512-GNoOaLRBM0gvH+ZRb2vKCIujzz4aclli64MBwDuYGU2EY53LwiP7MxOZGE46UGtotrSnmarPPZ69l2S/uxdaWA== - dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-repeat-style@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.1.tgz#5293f234b94d7669a9f805495d35b82a581c50e5" - integrity sha512-fFHPGIjBUyUiswY2rd9rsFcC0t3oRta4wxE1h3lpwfQZwFeFjXFSiDtdJ7APCmHQOnUZnqYBADNRPKPwFAONgA== - dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-string@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.1.tgz#23c5030c2cc24175f66c914fa5199e2e3c10fef3" - integrity sha512-IJoexFTkAvAq5UZVxWXAGE0yLoNN/012v7TQh5nDo6imZJl2Fwgbhy3J2qnIoaDBrtUP0H7JrXlX1jjn2YcvCQ== - dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-timing-functions@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.1.tgz#8be83e0b9cb3ff2d1abddee032a49108f05f95d7" - integrity sha512-1nOtk7ze36+63ONWD8RCaRDYsnzorrj+Q6fxkQV+mlY5+471Qx9kspqv0O/qQNMeApg8KNrRf496zHwJ3tBZ7w== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-whitespace@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.1.tgz#d14cb639b61238418ac8bc8d3b7bdd65fc86575e" - integrity sha512-U8MBODMB2L+nStzOk6VvWWjZgi5kQNShCyjRhMT3s+W9Jw93yIjOnrEkKYD3Ul7ChWbEcjDWmXq0qOL9MIAnAw== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-ordered-values@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.1.tgz#2e3b432ef3e489b18333aeca1f1295eb89be9fc2" - integrity sha512-PeJiLgJWPzkVF8JuKSBcylaU+hDJ/TX3zqAMIjlghgn1JBi6QwQaDZoDIlqWRcCAI8SxKrt3FCPSRmOgKRB97Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-overflow-shorthand@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz#31ecf350e9c6f6ddc250a78f0c3e111f32dd4c30" - integrity sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g== - dependencies: - postcss "^7.0.2" - -postcss-page-break@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-2.0.0.tgz#add52d0e0a528cabe6afee8b46e2abb277df46bf" - integrity sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ== - dependencies: - postcss "^7.0.2" - -postcss-place@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-4.0.1.tgz#e9f39d33d2dc584e46ee1db45adb77ca9d1dcc62" - integrity sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-preset-env@^6.5.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.5.0.tgz#a14b8f6e748b2a3a4a02a56f36c390f30073b9e1" - integrity sha512-RdsIrYJd9p9AouQoJ8dFP5ksBJEIegA4q4WzJDih8nevz3cZyIP/q1Eaw3pTVpUAu3n7Y32YmvAW3X07mSRGkw== - dependencies: - autoprefixer "^9.4.2" - browserslist "^4.3.5" - caniuse-lite "^1.0.30000918" - css-blank-pseudo "^0.1.4" - css-has-pseudo "^0.10.0" - css-prefers-color-scheme "^3.1.1" - cssdb "^4.3.0" - postcss "^7.0.6" - postcss-attribute-case-insensitive "^4.0.0" - postcss-color-functional-notation "^2.0.1" - postcss-color-gray "^5.0.0" - postcss-color-hex-alpha "^5.0.2" - postcss-color-mod-function "^3.0.3" - postcss-color-rebeccapurple "^4.0.1" - postcss-custom-media "^7.0.7" - postcss-custom-properties "^8.0.9" - postcss-custom-selectors "^5.1.2" - postcss-dir-pseudo-class "^5.0.0" - postcss-double-position-gradients "^1.0.0" - postcss-env-function "^2.0.2" - postcss-focus-visible "^4.0.0" - postcss-focus-within "^3.0.0" - postcss-font-variant "^4.0.0" - postcss-gap-properties "^2.0.0" - postcss-image-set-function "^3.0.1" - postcss-initial "^3.0.0" - postcss-lab-function "^2.0.1" - postcss-logical "^3.0.0" - postcss-media-minmax "^4.0.0" - postcss-nesting "^7.0.0" - postcss-overflow-shorthand "^2.0.0" - postcss-page-break "^2.0.0" - postcss-place "^4.0.1" - postcss-pseudo-class-any-link "^6.0.0" - postcss-replace-overflow-wrap "^3.0.0" - postcss-selector-matches "^4.0.0" - postcss-selector-not "^4.0.0" - -postcss-pseudo-class-any-link@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz#2ed3eed393b3702879dec4a87032b210daeb04d1" - integrity sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-reduce-initial@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.2.tgz#bac8e325d67510ee01fa460676dc8ea9e3b40f15" - integrity sha512-epUiC39NonKUKG+P3eAOKKZtm5OtAtQJL7Ye0CBN1f+UQTHzqotudp+hki7zxXm7tT0ZAKDMBj1uihpPjP25ug== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - -postcss-reduce-transforms@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.1.tgz#8600d5553bdd3ad640f43bff81eb52f8760d4561" - integrity sha512-sZVr3QlGs0pjh6JAIe6DzWvBaqYw05V1t3d9Tp+VnFRT5j+rsqoWsysh/iSD7YNsULjq9IAylCznIwVd5oU/zA== - dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-replace-overflow-wrap@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz#61b360ffdaedca84c7c918d2b0f0d0ea559ab01c" - integrity sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw== - dependencies: - postcss "^7.0.2" - -postcss-scss@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-0.3.1.tgz#65c610d8e2a7ee0e62b1835b71b8870734816e4b" - integrity sha1-ZcYQ2OKn7g5isYNbcbiHBzSBbks= - dependencies: - postcss "^5.2.4" - -postcss-selector-matches@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff" - integrity sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww== - dependencies: - balanced-match "^1.0.0" - postcss "^7.0.2" - -postcss-selector-not@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz#c68ff7ba96527499e832724a2674d65603b645c0" - integrity sha512-W+bkBZRhqJaYN8XAnbbZPLWMvZD1wKTu0UxtFKdhtGjWYmxhkUneoeOhRJKdAE5V7ZTlnbHfCR+6bNwK9e1dTQ== - dependencies: - balanced-match "^1.0.0" - postcss "^7.0.2" - -postcss-selector-parser@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865" - integrity sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU= - dependencies: - dot-prop "^4.1.1" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^5.0.0, postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" - integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== - dependencies: - cssesc "^2.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-svgo@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.1.tgz#5628cdb38f015de6b588ce6d0bf0724b492b581d" - integrity sha512-YD5uIk5NDRySy0hcI+ZJHwqemv2WiqqzDgtvgMzO8EGSkK5aONyX8HMVFRFJSdO8wUWTuisUFn/d7yRRbBr5Qw== - dependencies: - is-svg "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" - -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== - dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" - -postcss-url@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/postcss-url/-/postcss-url-8.0.0.tgz#7b10059bd12929cdbb1971c60f61a0e5af86b4ca" - integrity sha512-E2cbOQ5aii2zNHh8F6fk1cxls7QVFZjLPSrqvmiza8OuXLzIpErij8BDS5Y3STPfJgpIMNCPEr8JlKQWEoozUw== - dependencies: - mime "^2.3.1" - minimatch "^3.0.4" - mkdirp "^0.5.0" - postcss "^7.0.2" - xxhashjs "^0.2.1" - -postcss-value-parser@^3.0.0, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss-values-parser@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" - integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg== - dependencies: - flatten "^1.0.2" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss@^5.0.8, postcss@^5.2.4: - version "5.2.18" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" - integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== - dependencies: - chalk "^1.1.3" - js-base64 "^2.1.9" - source-map "^0.5.6" - supports-color "^3.2.3" - -postcss@^6.0.9: - version "6.0.23" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" - integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== - dependencies: - chalk "^2.4.1" - source-map "^0.6.1" - supports-color "^5.4.0" - -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.11, postcss@^7.0.14, postcss@^7.0.2, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.14" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.14.tgz#4527ed6b1ca0d82c53ce5ec1a2041c2346bbd6e5" - integrity sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - -prettier@1.16.3: - version "1.16.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.16.3.tgz#8c62168453badef702f34b45b6ee899574a6a65d" - integrity sha512-kn/GU6SMRYPxUakNXhpP0EedT/KmaPzr0H5lIsDogrykbaxOpOfAFfk5XA7DZrJyMAv1wlMV3CPcZruGXVVUZw== - -pretty-bytes@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.1.0.tgz#6237ecfbdc6525beaef4de722cc60a58ae0e6c6d" - integrity sha512-wa5+qGVg9Yt7PB6rYm3kXlKzgzgivYTLRandezh43jjRqgyDyP+9YxfJpJiLs9yKD1WeU8/OvtToWpW7255FtA== - -pretty-error@^2.0.2: - version "2.1.1" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" - integrity sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM= - dependencies: - renderkid "^2.0.1" - utila "~0.4" - -pretty-hrtime@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" - integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= - -pretty-time@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e" - integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA== - -private@^0.1.6: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - -process-nextick-args@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" - integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= - -proxy-addr@~2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93" - integrity sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA== - dependencies: - forwarded "~0.1.2" - ipaddr.js "1.8.0" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - 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" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -purgecss-webpack-plugin@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/purgecss-webpack-plugin/-/purgecss-webpack-plugin-1.4.0.tgz#accf6f8f41a7d48fe830da16a4c94d1ab884d6c0" - integrity sha512-kCVR8RvmtJ6IwzxMBNFmAucItyvY6db0Ui5DBmQHCe8GvY2ST03a26wFCU8XwfzN8gpKUGZPyuD3OtL+9WOT0w== - dependencies: - purgecss "^1.1.0" - webpack-sources "^1.3.0" - -purgecss@^1.0.0, purgecss@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/purgecss/-/purgecss-1.1.0.tgz#0d27c18bb4070d246a845ea22697271eabb59ffe" - integrity sha512-/XYpiMvbehpeJqxu8k0hzCai9F2RQGjprjpJzRMq9e2qkT8Fk7AW9zLr7bAuqQfxgMIV/+DTNlks3Ckn6J9WEw== - dependencies: - glob "^7.1.2" - postcss "^7.0.0" - postcss-selector-parser "^5.0.0-rc.3" - yargs "^12.0.1" - -q@^1.1.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= - -qs@6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -qs@^6.6.0: - version "6.6.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.6.0.tgz#a99c0f69a8d26bf7ef012f871cdabb0aee4424c2" - integrity sha512-KIJqT9jQJDQx5h5uAVPimw6yVg2SekOKu959OCtktD3FjzbpvaPr8i4zzg07DOMz+igA4W/aNM7OV8H37pFYfA== - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - -querystring@0.2.0, querystring@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" - integrity sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@^1.0.3, range-parser@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" - integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4= - -raw-body@2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" - integrity sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw== - dependencies: - bytes "3.0.0" - http-errors "1.6.3" - iconv-lite "0.4.23" - unpipe "1.0.0" - -rc@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -read-cache@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" - integrity sha1-5mTvMRYRZsl1HNvo28+GtftY93Q= - dependencies: - pify "^2.3.0" - -read-file-stdin@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/read-file-stdin/-/read-file-stdin-0.2.1.tgz#25eccff3a153b6809afacb23ee15387db9e0ee61" - integrity sha1-JezP86FTtoCa+ssj7hU4fbng7mE= - dependencies: - gather-stream "^1.0.0" - -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== - dependencies: - 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" - -readable-stream@1.0: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^3.0.6, readable-stream@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.1.1.tgz#ed6bbc6c5ba58b090039ff18ce670515795aeb06" - integrity sha512-DkN66hPyqDhnIQ6Jcsvx9bFjhw214O4poMBcIMgPVpQvNy9a0e0Uhg5SqySyDKAmUlwt8LonTBz1ezOnM8pUdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -regenerate-unicode-properties@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz#107405afcc4a190ec5ed450ecaa00ed0cafa7a4c" - integrity sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw== - dependencies: - regenerate "^1.4.0" - -regenerate@^1.2.1, regenerate@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - -regenerator-runtime@^0.12.0: - version "0.12.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" - integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== - -regenerator-transform@^0.13.3: - version "0.13.3" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.13.3.tgz#264bd9ff38a8ce24b06e0636496b2c856b57bcbb" - integrity sha512-5ipTrZFSq5vU2YoGoww4uaRVAK4wyYC4TSICibbfEPOruUu8FFP7ErV0BjmbIOEpn3O/k9na9UEdYR/3m7N6uA== - dependencies: - private "^0.1.6" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexp-tree@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.1.tgz#27b455f9b138ca2e84c090e9aff1ffe2a04d97fa" - integrity sha512-HwRjOquc9QOwKTgbxvZTcddS5mlNlwePMQ3NFL8broajMLD5CXDAqas8Y5yxJH5QtZp5iRor3YCILd5pz71Cgw== - dependencies: - cli-table3 "^0.5.0" - colors "^1.1.2" - yargs "^12.0.5" - -regexpp@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" - integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== - -regexpu-core@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" - integrity sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs= - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -regexpu-core@^4.1.3, regexpu-core@^4.2.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.4.0.tgz#8d43e0d1266883969720345e70c275ee0aec0d32" - integrity sha512-eDDWElbwwI3K0Lo6CqbQbA6FwgtCz4kYTarrri1okfkRLZAqstU+B3voZBCjg8Fl6iq0gXrJG6MvRgLthfvgOA== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^7.0.0" - regjsgen "^0.5.0" - regjsparser "^0.6.0" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.0.2" - -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= - -regjsgen@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" - integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA== - -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= - dependencies: - jsesc "~0.5.0" - -regjsparser@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" - integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== - dependencies: - jsesc "~0.5.0" - -relateurl@0.2.x: - version "0.2.7" - resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -renderkid@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.2.tgz#12d310f255360c07ad8fde253f6c9e9de372d2aa" - integrity sha512-FsygIxevi1jSiPY9h7vZmBFUbAOcbYm9UwyiLNdVsLRs/5We9Ob5NMPbGYUTWiLq5L+ezlVdE0A8bbME5CWTpg== - dependencies: - css-select "^1.1.0" - dom-converter "~0.2" - htmlparser2 "~3.3.0" - strip-ansi "^3.0.0" - utila "^0.4.0" - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-from-string@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@^1.1.7, resolve@^1.2.0, resolve@^1.3.2, resolve@^1.8.1: - version "1.10.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba" - integrity sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg== - dependencies: - path-parse "^1.0.6" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= - -rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@~2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -run-async@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" - integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= - dependencies: - is-promise "^2.1.0" - -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= - dependencies: - aproba "^1.1.1" - -rxjs@^6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.4.0.tgz#f3bb0fe7bda7fb69deac0c16f17b50b0b8790504" - integrity sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw== - dependencies: - tslib "^1.9.0" - -safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sax@^1.2.4, sax@~1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - -semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" - integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== - -send@0.16.2: - version "0.16.2" - resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" - integrity sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw== - dependencies: - 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.6.2" - mime "1.4.1" - ms "2.0.0" - on-finished "~2.3.0" - range-parser "~1.2.0" - statuses "~1.4.0" - -serialize-javascript@^1.3.0, serialize-javascript@^1.4.0, serialize-javascript@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.6.1.tgz#4d1f697ec49429a847ca6f442a2a755126c4d879" - integrity sha512-A5MOagrPFga4YaKQSWHryl7AXvbQkEqpw4NNYMTNYUNV51bA8ABHgYFpqKx+YFFrw59xMV1qGH1R4AgoNIVgCw== - -serve-placeholder@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/serve-placeholder/-/serve-placeholder-1.1.1.tgz#aab67f559abda831d8ddc66ee3da8564304273d6" - integrity sha512-dkRNJTSHfkDJUpOSN8LAQav+BJlwiPETND4YDDCiTfb0Ot5RGBXx5vZa4qYugi6dA1eNow0tKTqTTKQSxqcpWw== - dependencies: - defu "^0.0.1" - -serve-static@1.13.2, serve-static@^1.13.2: - version "1.13.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" - integrity sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.2" - send "0.16.2" - -server-destroy@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/server-destroy/-/server-destroy-1.0.1.tgz#f13bf928e42b9c3e79383e61cc3998b5d14e6cdd" - integrity sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0= - -set-blocking@^2.0.0, set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-value@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" - integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE= - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.1" - to-object-path "^0.3.0" - -set-value@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" - integrity sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -shell-quote@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" - integrity sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c= - dependencies: - array-filter "~0.0.0" - array-map "~0.0.0" - array-reduce "~0.0.0" - jsonify "~0.0.0" - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= - dependencies: - is-arrayish "^0.3.1" - -slice-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== - dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" - is-fullwidth-code-point "^2.0.0" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - 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" - -sort-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" - integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= - dependencies: - is-plain-obj "^1.0.0" - -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - -source-map-resolve@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" - integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== - dependencies: - atob "^2.1.1" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@~0.5.9: - version "0.5.10" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.10.tgz#2214080bc9d51832511ee2bab96e3c2f9353120c" - integrity sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= - -source-map@0.5.6: - version "0.5.6" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" - integrity sha1-dc449SvwczxafwwRjYEzSiu19BI= - -source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -ssri@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" - integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== - dependencies: - figgy-pudding "^3.5.1" - -stable@~0.1.6: - version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - -stack-trace@0.0.10: - version "0.0.10" - resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" - integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= - -stackframe@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.0.4.tgz#357b24a992f9427cba6b545d96a14ed2cbca187b" - integrity sha512-to7oADIniaYwS3MhtCa/sQhrxidCCQiF/qp4/m5iN3ipf0Y7Xlri0f6eG29r08aL7JYl8n32AF3Q5GYBZ7K8vw== - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -"statuses@>= 1.4.0 < 2": - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -statuses@~1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" - integrity sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4= - -statuses@~1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" - integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew== - -std-env@^1.1.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/std-env/-/std-env-1.3.1.tgz#4e1758412439e9ece1d437b1b098551911aa44ee" - integrity sha512-KI2F2pPJpd3lHjng+QLezu0eq+QDtXcv1um016mhOPAJFHKL+09ykK5PUBWta2pZDC8BVV0VPya08A15bUXSLQ== - dependencies: - is-ci "^1.1.0" - -std-env@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/std-env/-/std-env-2.2.1.tgz#2ffa0fdc9e2263e0004c1211966e960948a40f6b" - integrity sha512-IjYQUinA3lg5re/YMlwlfhqNRTzMZMqE+pezevdcTaHceqx8ngEi1alX9nNCk9Sc81fy1fLDeQoaCzeiW1yBOQ== - dependencies: - ci-info "^1.6.0" - -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" - integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.0.0.tgz#5a1690a57cc78211fffd9bf24bbe24d090604eb1" - integrity sha512-rr8CUxBbvOZDUvc5lNIJ+OC1nPVpz+Siw9VBtUjB9b6jZehZLFt0JMCZzShFHIsI8cbhm0EsNIfWJMFV3cu3Ew== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.0.0" - -string.prototype.repeat@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/string.prototype.repeat/-/string.prototype.repeat-0.2.0.tgz#aba36de08dcee6a5a337d49b2ea1da1b28fc0ecf" - integrity sha1-q6Nt4I3O5qWjN9SbLqHaGyj8Ds8= - -string_decoder@^1.0.0, string_decoder@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" - integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w== - dependencies: - safe-buffer "~5.1.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.0.0.tgz#f78f68b5d0866c20b2c9b8c61b5298508dc8756f" - integrity sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow== - dependencies: - ansi-regex "^4.0.0" - -strip-comments@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-1.0.2.tgz#82b9c45e7f05873bee53f37168af930aa368679d" - integrity sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw== - dependencies: - babel-extract-comments "^1.0.0" - babel-plugin-transform-object-rest-spread "^6.26.0" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -style-resources-loader@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/style-resources-loader/-/style-resources-loader-1.2.1.tgz#7679d5dc2f27046b2fc2b83c1d5b6c1b8a9b820c" - integrity sha512-ekId7AwZRW429UjQo02CJTt0Y8GwoT9zidvJLq4lRTJbu0cghv9XNRmt9mS4MR41+gZwMRT0EpFzP68HDWLbXQ== - dependencies: - glob "^7.1.2" - is-callable "^1.1.4" - is-plain-object "^2.0.4" - is-promise "^2.1.0" - loader-utils "^1.1.0" - -stylehacks@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.1.tgz#3186595d047ab0df813d213e51c8b94e0b9010f2" - integrity sha512-TK5zEPeD9NyC1uPIdjikzsgWxdQQN/ry1X3d1iOz1UkYDCmcr928gWD1KHgyC27F50UnE0xCTrBOO1l6KR8M4w== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -superagent@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/superagent/-/superagent-4.1.0.tgz#c465c2de41df2b8d05c165cbe403e280790cdfd5" - integrity sha512-FT3QLMasz0YyCd4uIi5HNe+3t/onxMyEho7C3PSqmti3Twgy2rXT4fmkTz6wRL6bTF4uzPcfkUCa8u4JWHw8Ag== - dependencies: - component-emitter "^1.2.0" - cookiejar "^2.1.2" - debug "^4.1.0" - form-data "^2.3.3" - formidable "^1.2.0" - methods "^1.1.1" - mime "^2.4.0" - qs "^6.6.0" - readable-stream "^3.0.6" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - -supports-color@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= - dependencies: - has-flag "^1.0.0" - -supports-color@^5.3.0, supports-color@^5.4.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -svg-tags@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" - integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= - -svgo@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.1.1.tgz#12384b03335bcecd85cfa5f4e3375fed671cb985" - integrity sha512-GBkJbnTuFpM4jFbiERHDWhZc/S/kpHToqmZag3aEBjPYK44JAN2QBjvrGIxLOoCyMZjuFQIfTO2eJd8uwLY/9g== - dependencies: - coa "~2.0.1" - colors "~1.1.2" - css-select "^2.0.0" - css-select-base-adapter "~0.1.0" - css-tree "1.0.0-alpha.28" - css-url-regex "^1.1.0" - csso "^3.5.0" - js-yaml "^3.12.0" - mkdirp "~0.5.1" - object.values "^1.0.4" - sax "~1.2.4" - stable "~0.1.6" - unquote "~1.1.1" - util.promisify "~1.0.0" - -table@^5.0.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/table/-/table-5.2.2.tgz#61d474c9e4d8f4f7062c98c7504acb3c08aa738f" - integrity sha512-f8mJmuu9beQEDkKHLzOv4VxVYlU68NpdzjbGPl69i4Hx0sTopJuNxuzJd17iV2h24dAfa93u794OnDA5jqXvfQ== - dependencies: - ajv "^6.6.1" - lodash "^4.17.11" - slice-ansi "^2.0.0" - string-width "^2.1.1" - -tailwindcss@^0.7.3: - version "0.7.4" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-0.7.4.tgz#fb7926821d42eacdc12e6621a49d21f37a3ff9e9" - integrity sha512-+GeQjHRJ2VmeLkrNwMCbPDfm2cc5P8eoc7n+DtZfI8oQdlo5eSHqsIlPEuZOtoqQlIALsd2jAggWrUUBFGP2ow== - dependencies: - autoprefixer "^9.4.5" - bytes "^3.0.0" - chalk "^2.4.1" - css.escape "^1.5.1" - fs-extra "^4.0.2" - lodash "^4.17.5" - node-emoji "^1.8.1" - perfectionist "^2.4.0" - postcss "^7.0.11" - postcss-functions "^3.0.0" - postcss-js "^2.0.0" - postcss-nested "^4.1.1" - postcss-selector-parser "^5.0.0" - pretty-hrtime "^1.0.3" - strip-comments "^1.0.2" - -tapable@^0.2.7: - version "0.2.9" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.9.tgz#af2d8bbc9b04f74ee17af2b4d9048f807acd18a8" - integrity sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A== - -tapable@^1.0.0, tapable@^1.0.0-beta.5, tapable@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.1.tgz#4d297923c5a72a42360de2ab52dadfaaec00018e" - integrity sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA== - -tar@^4: - version "4.4.8" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d" - integrity sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ== - dependencies: - chownr "^1.1.1" - fs-minipass "^1.2.5" - minipass "^2.3.4" - minizlib "^1.1.1" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.2" - -term-size@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" - integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= - dependencies: - execa "^0.7.0" - -terser-webpack-plugin@^1.1.0, terser-webpack-plugin@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.2.2.tgz#9bff3a891ad614855a7dde0d707f7db5a927e3d9" - integrity sha512-1DMkTk286BzmfylAvLXwpJrI7dWa5BnFmscV/2dCr8+c56egFcbaeFAl7+sujAjdmpLam21XRdhA4oifLyiWWg== - dependencies: - cacache "^11.0.2" - find-cache-dir "^2.0.0" - schema-utils "^1.0.0" - serialize-javascript "^1.4.0" - source-map "^0.6.1" - terser "^3.16.1" - webpack-sources "^1.1.0" - worker-farm "^1.5.2" - -terser@^3.16.1: - version "3.16.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-3.16.1.tgz#5b0dd4fa1ffd0b0b43c2493b2c364fd179160493" - integrity sha512-JDJjgleBROeek2iBcSNzOHLKsB/MdDf+E/BOAJ0Tk9r7p9/fVobfv7LMJ/g/k3v9SXdmjZnIlFd5nfn/Rt0Xow== - dependencies: - commander "~2.17.1" - source-map "~0.6.1" - source-map-support "~0.5.9" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -thread-loader@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/thread-loader/-/thread-loader-1.2.0.tgz#35dedb23cf294afbbce6c45c1339b950ed17e7a4" - integrity sha512-acJ0rvUk53+ly9cqYWNOpPqOgCkNpmHLPDGduNm4hDQWF7EDKEJXAopG9iEWsPPcml09wePkq3NF+ZUqnO6tbg== - dependencies: - async "^2.3.0" - loader-runner "^2.3.0" - loader-utils "^1.1.0" - -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through@^2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -time-fix-plugin@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/time-fix-plugin/-/time-fix-plugin-2.0.5.tgz#41c76e734217cc91a08ea525fdde56de119fb683" - integrity sha512-veHRiEsQ50KSrfdhkZiFvZIjRoyfyfxpgskD+P7uVQAcNe6rIMLZ8vhjFRE2XrPqQdy+4CF+jXsWAlgVy9Bfcg== - -timers-browserify@^2.0.4: - version "2.0.10" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" - integrity sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg== - dependencies: - setimmediate "^1.0.4" - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toposort@^1.0.0: - version "1.0.7" - resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" - integrity sha1-LmhELZ9k7HILjMieZEOsbKqVACk= - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= - -tryer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" - integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== - -tslib@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" - integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - -type-is@~1.6.16: - version "1.6.16" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" - integrity sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.18" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -ua-parser-js@^0.7.19: - version "0.7.19" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.19.tgz#94151be4c0a7fb1d001af7022fdaca4642659e4b" - integrity sha512-T3PVJ6uz8i0HzPxOF9SWzWAlfN/DavlpQqepn22xgve/5QecC+XMCAtmUNnY7C9StehaV6exjUCI801lOI7QlQ== - -uglify-js@3.4.x: - version "3.4.9" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.9.tgz#af02f180c1207d76432e473ed24a28f4a782bae3" - integrity sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q== - dependencies: - commander "~2.17.1" - source-map "~0.6.1" - -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== - -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" - -unicode-match-property-value-ecmascript@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz#9f1dc76926d6ccf452310564fd834ace059663d4" - integrity sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ== - -unicode-property-aliases-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz#5a533f31b4317ea76f17d807fa0d116546111dd0" - integrity sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg== - -union-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" - integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ= - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^0.4.3" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.1.tgz#5e9edc6d1ce8fb264db18a507ef9bd8544451ca6" - integrity sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg== - dependencies: - imurmurhash "^0.1.4" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" - integrity sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw== - -upper-case@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" - integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url-loader@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.2.tgz#b971d191b83af693c5e3fea4064be9e1f2d7f8d8" - integrity sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg== - dependencies: - loader-utils "^1.1.0" - mime "^2.0.3" - schema-utils "^1.0.0" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util.promisify@1.0.0, util.promisify@^1.0.0, util.promisify@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" - integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== - dependencies: - define-properties "^1.1.2" - object.getownpropertydescriptors "^2.0.3" - -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - -utila@^0.4.0, utila@~0.4: - version "0.4.0" - resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -uuid@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" - integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -vendors@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.2.tgz#7fcb5eef9f5623b156bcea89ec37d63676f21801" - integrity sha512-w/hry/368nO21AN9QljsaIhb9ZiZtZARoVH5f3CsFbawdLdayCgKRPup7CggujvySMxx0I91NOyxdVENohprLQ== - -vm-browserify@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" - integrity sha1-XX6kW7755Kb/ZflUOOCofDV9WnM= - dependencies: - indexof "0.0.1" - -vue-eslint-parser@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-4.0.3.tgz#80cf162e484387b2640371ad21ba1f86e0c10a61" - integrity sha512-AUeQsYdO6+7QXCems+WvGlrXd37PHv/zcRQSQdY1xdOMwdFAPEnMBsv7zPvk0TPGulXkK/5p/ITgrjiYB7k3ag== - dependencies: - debug "^4.1.0" - eslint-scope "^4.0.0" - eslint-visitor-keys "^1.0.0" - espree "^4.1.0" - esquery "^1.0.1" - lodash "^4.17.11" - -vue-hot-reload-api@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.1.tgz#b2d3d95402a811602380783ea4f566eb875569a2" - integrity sha512-AA86yKZ5uOKz87/q1UpngEXhbRkaYg1b7HMMVRobNV1IVKqZe8oLIzo6iMocVwZXnYitlGwf2k4ZRLOZlS8oPQ== - -vue-loader@^15.6.2: - version "15.6.2" - resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.6.2.tgz#892741d96260936ff69e892f72ec361ba4d100d2" - integrity sha512-T6fONodj861M3PqZ1jlbUFjeezbUnPRY2bd+3eZuDvYADgkN3VFU2H5feqySNg9XBt8rcbyBGmFWTZtrOX+v5w== - dependencies: - "@vue/component-compiler-utils" "^2.5.1" - hash-sum "^1.0.2" - loader-utils "^1.1.0" - vue-hot-reload-api "^2.3.0" - vue-style-loader "^4.1.0" - -vue-meta@^1.5.8: - version "1.5.8" - resolved "https://registry.yarnpkg.com/vue-meta/-/vue-meta-1.5.8.tgz#1088d50cdf770525e37430186781bede929370a4" - integrity sha512-cF/ADL1kA8Gn6wfSx0+kYIPAmJ49y9R0QlMS9tg5ddDDZWaZMZ0rveFWaTOKr0eabUV/H3D9ip68Xt9f5SFbyA== - dependencies: - deepmerge "^3.0.0" - lodash.isplainobject "^4.0.6" - lodash.uniqueid "^4.0.1" - object-assign "^4.1.1" - -vue-no-ssr@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/vue-no-ssr/-/vue-no-ssr-1.1.1.tgz#875f3be6fb0ae41568a837f3ac1a80eaa137b998" - integrity sha512-ZMjqRpWabMPqPc7gIrG0Nw6vRf1+itwf0Itft7LbMXs2g3Zs/NFmevjZGN1x7K3Q95GmIjWbQZTVerxiBxI+0g== - -vue-router@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.0.2.tgz#dedc67afe6c4e2bc25682c8b1c2a8c0d7c7e56be" - integrity sha512-opKtsxjp9eOcFWdp6xLQPLmRGgfM932Tl56U9chYTnoWqKxQ8M20N7AkdEbM5beUh6wICoFGYugAX9vQjyJLFg== - -vue-server-renderer@^2.5.22: - version "2.6.3" - resolved "https://registry.yarnpkg.com/vue-server-renderer/-/vue-server-renderer-2.6.3.tgz#5e05e8e8b9369436b5497363c96d7f82fb6222ce" - integrity sha512-VLKuwswueSrAWLzTpmlC+fDcHUy+7zKkwza9eXSUdVzs4XmtZQbYCZmEKrbyqZqFC3XJ1FVufsXqk915P3iKVg== - dependencies: - chalk "^1.1.3" - hash-sum "^1.0.2" - he "^1.1.0" - lodash.template "^4.4.0" - lodash.uniq "^4.5.0" - resolve "^1.2.0" - serialize-javascript "^1.3.0" - source-map "0.5.6" - -vue-style-loader@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.2.tgz#dedf349806f25ceb4e64f3ad7c0a44fba735fcf8" - integrity sha512-0ip8ge6Gzz/Bk0iHovU9XAUQaFt/G2B61bnWa2tCcqqdgfHs1lF9xXorFbE55Gmy92okFT+8bfmySuUOu13vxQ== - dependencies: - hash-sum "^1.0.2" - loader-utils "^1.0.2" - -vue-template-compiler@^2.5.22: - version "2.6.3" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.3.tgz#fe76b7755b038889f5e887895745f0d2bce3f778" - integrity sha512-SQ3lJk7fwquz8fGac7MwvP9cEBZntokTWITaDrLC0zmyBKjcOfJtWZkMsv+2uSUBDD8kwz8Bsad9xmBWaNULhg== - dependencies: - de-indent "^1.0.2" - he "^1.1.0" - -vue-template-es2015-compiler@^1.8.2: - version "1.8.2" - resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.8.2.tgz#dd73e80ba58bb65dd7a8aa2aeef6089cf6116f2a" - integrity sha512-cliV19VHLJqFUYbz/XeWXe5CO6guzwd0yrrqqp0bmjlMP3ZZULY7fu8RTC4+3lmHwo6ESVDHFDsvjB15hcR5IA== - -vue@^2.5.22: - version "2.6.3" - resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.3.tgz#180017ba25b94a9864b2921db8644e1062ea82a0" - integrity sha512-yftjtahz4UTAtOlXXuw7UaYD86fWrMDAAzqTdqJJx2FIBqcPmBN6kPBHiBJFGaQELVblb5ijbFMXsx0i0F7q3g== - -vuex@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.1.0.tgz#634b81515cf0cfe976bd1ffe9601755e51f843b9" - integrity sha512-mdHeHT/7u4BncpUZMlxNaIdcN/HIt1GsGG5LKByArvYG/v6DvHcOxvDCts+7SRdCoIRGllK8IMZvQtQXLppDYg== - -watchpack@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" - integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== - dependencies: - chokidar "^2.0.2" - graceful-fs "^4.1.2" - neo-async "^2.5.0" - -webpack-bundle-analyzer@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.0.3.tgz#dbc7fff8f52058b6714a20fddf309d0790e3e0a0" - integrity sha512-naLWiRfmtH4UJgtUktRTLw6FdoZJ2RvCR9ePbwM9aRMsS/KjFerkPZG9epEvXRAw5d5oPdrs9+3p+afNjxW8Xw== - dependencies: - acorn "^5.7.3" - bfj "^6.1.1" - chalk "^2.4.1" - commander "^2.18.0" - ejs "^2.6.1" - express "^4.16.3" - filesize "^3.6.1" - gzip-size "^5.0.0" - lodash "^4.17.10" - mkdirp "^0.5.1" - opener "^1.5.1" - ws "^6.0.0" - -webpack-dev-middleware@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.5.2.tgz#d768b6194f3fe8d72d51feded49de359e8d96ffb" - integrity sha512-nPmshdt1ckcwWjI0Ubrdp8KroeuprW6xFKYqk0u3MflNMBXvHPnMATsC7/L/enwav2zvLCfj/Usr47qnF3KQyA== - dependencies: - memory-fs "~0.4.1" - mime "^2.3.1" - range-parser "^1.0.3" - webpack-log "^2.0.0" - -webpack-hot-middleware@^2.24.3: - version "2.24.3" - resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.24.3.tgz#5bb76259a8fc0d97463ab517640ba91d3382d4a6" - integrity sha512-pPlmcdoR2Fn6UhYjAhp1g/IJy1Yc9hD+T6O9mjRcWV2pFbBjIFoJXhP0CoD0xPOhWJuWXuZXGBga9ybbOdzXpg== - dependencies: - ansi-html "0.0.7" - html-entities "^1.2.0" - querystring "^0.2.0" - strip-ansi "^3.0.0" - -webpack-log@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" - integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== - dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" - -webpack-node-externals@^1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/webpack-node-externals/-/webpack-node-externals-1.7.2.tgz#6e1ee79ac67c070402ba700ef033a9b8d52ac4e3" - integrity sha512-ajerHZ+BJKeCLviLUUmnyd5B4RavLF76uv3cs6KNuO8W+HuQaEs0y0L7o40NQxdPy5w0pcv8Ew7yPUAQG0UdCg== - -webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack-sources@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" - integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack@^4.29.2: - version "4.29.3" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.29.3.tgz#e0b406a7b4201ed5e4fb4f84fd7359f9a7db4647" - integrity sha512-xPJvFeB+8tUflXFq+OgdpiSnsCD5EANyv56co5q8q8+YtEasn5Sj3kzY44mta+csCIEB0vneSxnuaHkOL2h94A== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-module-context" "1.7.11" - "@webassemblyjs/wasm-edit" "1.7.11" - "@webassemblyjs/wasm-parser" "1.7.11" - acorn "^6.0.5" - acorn-dynamic-import "^4.0.0" - ajv "^6.1.0" - ajv-keywords "^3.1.0" - chrome-trace-event "^1.0.0" - enhanced-resolve "^4.1.0" - eslint-scope "^4.0.0" - json-parse-better-errors "^1.0.2" - loader-runner "^2.3.0" - loader-utils "^1.1.0" - memory-fs "~0.4.1" - micromatch "^3.1.8" - mkdirp "~0.5.0" - neo-async "^2.5.0" - node-libs-browser "^2.0.0" - schema-utils "^1.0.0" - tapable "^1.1.0" - terser-webpack-plugin "^1.1.0" - watchpack "^1.5.0" - webpack-sources "^1.3.0" - -webpackbar@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/webpackbar/-/webpackbar-3.1.5.tgz#71f9de2d8b897785a3b3291cb6c8beecdf06542b" - integrity sha512-ayCxwj0m3lw8TMkbBBRl3XNiCIHqXYaQus8sNL+jX0lsp4LrYO9OmijsPeuu91cd/oUgK66c0AKQovPtJ1qDsA== - dependencies: - ansi-escapes "^3.1.0" - chalk "^2.4.1" - consola "^2.3.0" - figures "^2.0.0" - pretty-time "^1.1.0" - std-env "^2.2.1" - text-table "^0.2.0" - wrap-ansi "^4.0.0" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - -widest-line@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" - integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== - dependencies: - string-width "^2.1.1" - -wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= - -worker-farm@^1.5.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" - integrity sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ== - dependencies: - errno "~0.1.7" - -wp-nuxt@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/wp-nuxt/-/wp-nuxt-1.0.3.tgz#c21054d72f4bd9528ef51052e86fc9132e08a732" - integrity sha512-6DmwyxNsY4rEeXUaA5kgdgEO7mwMJcya8pZfhMR4GlrGFLo1AXhivz58KE04YY0Kdh0IuJcTcVHjveYTqO1Qyg== - dependencies: - wpapi "^1.1.2" - -wpapi@^1.1.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/wpapi/-/wpapi-1.2.1.tgz#dd618cd9af129e293a7a95baf6062d27159b6960" - integrity sha512-Jt7KTotp+fYa8mI7SSfdE+4xHrH8g57CWs21LhCrgvVERPGGv4L/APjIqft07idpGspURfCyo0sHrTOm5rnPsA== - dependencies: - li "^1.3.0" - parse-link-header "^1.0.1" - qs "^6.6.0" - superagent "^4.0.0" - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - -wrap-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-4.0.0.tgz#b3570d7c70156159a2d42be5cc942e957f7b1131" - integrity sha512-uMTsj9rDb0/7kk1PbcbCcwvHUxp60fGDB/NNXpVa0Q+ic/e7y5+BwTxKfQ33VYgDppSwi/FBzpetYzo8s6tfbg== - dependencies: - ansi-styles "^3.2.0" - string-width "^2.1.1" - strip-ansi "^4.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write-file-atomic@^2.0.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.2.tgz#a7181706dfba17855d221140a9c06e15fcdd87b9" - integrity sha512-s0b6vB3xIVRLWywa6X9TOMA7k9zio0TMOsl9ZnDkliA/cfJlpHXAscj0gbHVJiTdIuAYpIyqS5GW91fqm6gG5g== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - -write-file-stdout@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/write-file-stdout/-/write-file-stdout-0.0.2.tgz#c252d7c7c5b1b402897630e3453c7bfe690d9ca1" - integrity sha1-wlLXx8WxtAKJdjDjRTx7/mkNnKE= - -write-json-file@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-2.3.0.tgz#2b64c8a33004d54b8698c76d585a77ceb61da32f" - integrity sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8= - dependencies: - detect-indent "^5.0.0" - graceful-fs "^4.1.2" - make-dir "^1.0.0" - pify "^3.0.0" - sort-keys "^2.0.0" - write-file-atomic "^2.0.0" - -write@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" - integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c= - dependencies: - mkdirp "^0.5.1" - -ws@^6.0.0: - version "6.1.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.3.tgz#d2d2e5f0e3c700ef2de89080ebc0ac6e1bf3a72d" - integrity sha512-tbSxiT+qJI223AP4iLfQbkbxkwdFcneYinM2+x46Gx2wgvbaOMO36czfdfVUBRTHvzAMRhDd98sA5d/BuWbQdg== - dependencies: - async-limiter "~1.0.0" - -xtend@^4.0.0, xtend@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68= - -xxhashjs@^0.2.1: - version "0.2.2" - resolved "https://registry.yarnpkg.com/xxhashjs/-/xxhashjs-0.2.2.tgz#8a6251567621a1c46a5ae204da0249c7f8caa9d8" - integrity sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw== - dependencies: - cuint "^0.2.2" - -"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - -yallist@^3.0.0, yallist@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" - integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== - -yargs-parser@^11.1.1: - version "11.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" - integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs@^12.0.1, yargs@^12.0.5: - version "12.0.5" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" - integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== - dependencies: - cliui "^4.0.0" - decamelize "^1.2.0" - find-up "^3.0.0" - get-caller-file "^1.0.1" - os-locale "^3.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1 || ^4.0.0" - yargs-parser "^11.1.1" - -yargs@~1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-1.2.6.tgz#9c7b4a82fd5d595b2bf17ab6dcc43135432fe34b" - integrity sha1-nHtKgv1dWVsr8Xq23MQxNUMv40s= - dependencies: - minimist "^0.1.0"